Skip to content

Commit ac0aaf8

Browse files
committed
Doc style pass
1 parent 63c7d4d commit ac0aaf8

3 files changed

Lines changed: 16 additions & 16 deletions

File tree

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Private repo. Solo project for now.
66

77
- Branch off `main`, PR back. No direct pushes.
88
- Match existing code style. No reformatting churn in feature PRs.
9-
- Every offensive change must include the paired detection rule update under `detection/`. No exceptions that's the project's reason to exist.
9+
- Every offensive change must include the paired detection rule update under `detection/`. No exceptions, that's the project's reason to exist.
1010
- Run `cargo fmt` + `cargo clippy --all-targets -- -D warnings` before pushing.
1111
- Run `cargo test --release` before pushing.
1212

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ who find issues, raise an issue on the repository.
2222
## Disclosure status
2323

2424
CVE-2026-31431 is publicly disclosed (2026-04-29 by Theori / Xint).
25-
This project does not extend the disclosure surface it implements
25+
This project does not extend the disclosure surface, it implements
2626
detection and reproduction tooling for an already-public bug.
2727

2828
## Mitigation reminder

release-notes.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Single static `no_std` Rust binary. ~108 KB stripped musl on x86_64.
88

99
### Exploit (`--mode exploit`)
1010

11-
- `pam` (NEW first public PoC for this surface): single 4-byte killshot on `/etc/pam.d/common-auth` (Debian/Ubuntu) or `system-auth` (Fedora/RHEL/Arch). Comments out `pam_deny.so` so the auth chain falls through `pam_unix``pam_permit.so`. Sudo with any password = root.
11+
- `pam` (NEW, first public PoC for this surface): single 4-byte killshot on `/etc/pam.d/common-auth` (Debian/Ubuntu) or `system-auth` (Fedora/RHEL/Arch). Comments out `pam_deny.so` so the auth chain falls through `pam_unix``pam_permit.so`. Sudo with any password = root.
1212
- `su`: setuid binary text-section mutation in `/usr/bin/su`. `execve()` runs operator-supplied shellcode as root.
1313
- `passwd`: UID flip in `/etc/passwd`. Subsequent `su <user>` or login = root.
1414
- `--vector auto` (default): ranks `pam > su > passwd` by stealth, picks the highest applicable.
@@ -29,11 +29,11 @@ This is the **only public tool that catches CopyFail tampering**. Mainstream FIM
2929

3030
### Detection artifacts (`detection/`)
3131

32-
- `sigma/copyfail-af-alg.yml` Sigma rule, AF_ALG SOCK_SEQPACKET creation by non-root.
33-
- `auditd/copyfail.rules` auditd ruleset, key `copyfail_afalg_socket`.
34-
- `ebpf/copyfail-trace.bt` bpftrace one-liner.
35-
- `apparmor/copyfail-block.profile` AppArmor 3.0+ deny rule.
36-
- `mitigation/disable-algif.sh` modprobe blacklist + `=y` warning.
32+
- `sigma/copyfail-af-alg.yml`, Sigma rule, AF_ALG SOCK_SEQPACKET creation by non-root.
33+
- `auditd/copyfail.rules`, auditd ruleset, key `copyfail_afalg_socket`.
34+
- `ebpf/copyfail-trace.bt`, bpftrace one-liner.
35+
- `apparmor/copyfail-block.profile`, AppArmor 3.0+ deny rule.
36+
- `mitigation/disable-algif.sh`, modprobe blacklist + `=y` warning.
3737

3838
## Pre-built binaries
3939

@@ -44,7 +44,7 @@ Three musl-static, fully self-contained binaries attached to this release. SHA25
4444
| `copyfail-x86_64-musl` | x86_64-unknown-linux-musl | 108 KB |
4545
| `copyfail-aarch64-musl` | aarch64-unknown-linux-musl | 96 KB |
4646
| `copyfail-armv7-musleabihf` | armv7-unknown-linux-musleabihf | 86 KB |
47-
| `checksums.txt` | sha256 sums | |
47+
| `checksums.txt` | sha256 sums |, |
4848

4949
## Verification
5050

@@ -57,20 +57,20 @@ copyfail-armv7-musleabihf: OK
5757

5858
## Documentation
5959

60-
- [`README.md`](../blob/main/README.md) top-level, terse.
61-
- [`BLOG.md`](../blob/main/BLOG.md) long-form narrative version.
62-
- [`docs/usage.md`](../blob/main/docs/usage.md) concrete examples per mode.
63-
- [`docs/threat-model.md`](../blob/main/docs/threat-model.md) STRIDE-flavored, ~1 page.
64-
- [`docs/PUBLISH-CHECKLIST.md`](../blob/main/docs/PUBLISH-CHECKLIST.md) maintainer checklist.
60+
- [`README.md`](../blob/main/README.md), top-level, terse.
61+
- [`BLOG.md`](../blob/main/BLOG.md), long-form narrative version.
62+
- [`docs/usage.md`](../blob/main/docs/usage.md), concrete examples per mode.
63+
- [`docs/threat-model.md`](../blob/main/docs/threat-model.md), STRIDE-flavored, ~1 page.
64+
- [`docs/PUBLISH-CHECKLIST.md`](../blob/main/docs/PUBLISH-CHECKLIST.md), maintainer checklist.
6565

6666
## Credits
6767

6868
| Contribution | Who |
6969
|--------------|-----|
7070
| Bug discovery + CVE coordination | Theori / Xint (disclosed 2026-04-29) |
7171
| Original Python PoC | Theori / Xint |
72-
| C port + 2-vector taxonomy + nolibc packaging | tgies `github.com/tgies/copy-fail-c` |
73-
| Static Go port | badsectorlabs `github.com/badsectorlabs/copyfail-go` |
72+
| C port + 2-vector taxonomy + nolibc packaging | tgies, `github.com/tgies/copy-fail-c` |
73+
| Static Go port | badsectorlabs, `github.com/badsectorlabs/copyfail-go` |
7474
| **Rust port + PAM vector + dual-mode detection** | **diemoeve (this project)** |
7575

7676
## License

0 commit comments

Comments
 (0)