|
4 | 4 |
|
5 | 5 | Status: completed |
6 | 6 |
|
7 | | -Sub-state: Completed after restoring the approved hygiene checks and validating |
8 | | -the scanner/test matrix. |
| 7 | +Sub-state: Completed after fixing the remaining restored-rule GitHub Code |
| 8 | +Scanning findings and validating the scanner/test matrix. |
9 | 9 |
|
10 | 10 | ## Requirements |
11 | 11 |
|
@@ -614,3 +614,98 @@ Artifact updates: |
614 | 614 | because public integration guidance did not change. |
615 | 615 | - SOW lifecycle: this reopened regression is completed and the SOW will be |
616 | 616 | moved back to `done/` in the same commit as the restored scanner changes. |
| 617 | + |
| 618 | +## Regression - 2026-06-03 Remote Alerts After Hygiene Restoration |
| 619 | + |
| 620 | +What broke: |
| 621 | + |
| 622 | +- The restored CodeQL and OSV rules were useful and found remaining real |
| 623 | + hygiene/security issues after commit |
| 624 | + `1b7ce780b7c4c54902e1ff0e957aad1542fe3733`. |
| 625 | + |
| 626 | +Evidence: |
| 627 | + |
| 628 | +- Codacy Cloud and local Codacy are clean for the restored commit, so the |
| 629 | + remaining backlog is GitHub Code Scanning, not Codacy local configuration. |
| 630 | +- GitHub Code Scanning reported 32 open alerts after the restored-rule commit: |
| 631 | + one Go integer-conversion alert in `bench/drivers/go/main.go`, nine Go |
| 632 | + standard-library OSV alerts across the three Go modules, two C unused-code |
| 633 | + alerts, three C unused-local alerts, thirteen C constant-comparison alerts, |
| 634 | + two C TOCTOU alerts, one Go unchecked writable-close test alert, and one Go |
| 635 | + useless-assignment test alert. |
| 636 | +- Official Go release history states that `go1.25.11` and `go1.26.4`, both |
| 637 | + released on 2026-06-02, include security fixes for `crypto/x509`, `mime`, |
| 638 | + and `net/textproto`; the repository Go module directives still declare |
| 639 | + `go 1.25.10`. |
| 640 | + |
| 641 | +Why previous validation missed it: |
| 642 | + |
| 643 | +- Local `govulncheck` used the workstation Go runtime, currently `go1.26.3-X`, |
| 644 | + while GitHub OSV scans the module `go` directive and therefore still sees |
| 645 | + `go 1.25.10` as vulnerable. |
| 646 | +- The restored CodeQL rules only re-ran remotely after the follow-up commit was |
| 647 | + pushed. |
| 648 | + |
| 649 | +Repair plan: |
| 650 | + |
| 651 | +- Update all Go module directives from `go 1.25.10` to the patched supported |
| 652 | + Go line. |
| 653 | +- Fix the benchmark sample-count conversion by keeping the arithmetic bounded |
| 654 | + before converting to `int`. |
| 655 | +- Check writable file close errors in the SHM edge test and remove the useless |
| 656 | + UDS test assignment. |
| 657 | +- Remove unused C helpers and local variables. |
| 658 | +- Rewrite redundant overflow checks so the code preserves real guards without |
| 659 | + constant comparisons. |
| 660 | +- Resolve the stale socket/shared-memory cleanup TOCTOU alerts with a |
| 661 | + code-level security decision that is narrow and documented in code. |
| 662 | + |
| 663 | +Validation: |
| 664 | + |
| 665 | +- `cd src/go && go test ./... && go vet ./... && "$(go env GOPATH)/bin/govulncheck" ./... && "$(go env GOPATH)/bin/staticcheck" ./... && "$(go env GOPATH)/bin/gosec" -quiet -fmt json -out /tmp/plugin-ipc-gosec-src-go-followup.json -exclude=G404 ./...` |
| 666 | + passed with no Go vulnerabilities or gosec findings. |
| 667 | +- `cd tests/fixtures/go && go test ./... && go vet ./... && "$(go env GOPATH)/bin/govulncheck" ./... && "$(go env GOPATH)/bin/staticcheck" ./... && "$(go env GOPATH)/bin/gosec" -quiet -fmt json -out /tmp/plugin-ipc-gosec-fixtures-go-followup.json -exclude=G404 ./...` |
| 668 | + passed with no Go vulnerabilities or gosec findings. |
| 669 | +- `cd bench/drivers/go && go test ./... && go vet ./... && "$(go env GOPATH)/bin/govulncheck" ./... && "$(go env GOPATH)/bin/staticcheck" ./... && "$(go env GOPATH)/bin/gosec" -quiet -fmt json -out /tmp/plugin-ipc-gosec-bench-go-followup.json -exclude=G404 ./...` |
| 670 | + passed with no Go vulnerabilities or gosec findings. |
| 671 | +- `cargo test --manifest-path src/crates/netipc/Cargo.toml --all-targets --all-features --no-run && cargo clippy --manifest-path src/crates/netipc/Cargo.toml --all-targets --all-features -- -D clippy::correctness -D clippy::suspicious` |
| 672 | + passed. Clippy emitted existing warning-only hygiene output outside the hard |
| 673 | + correctness/suspicious gate. |
| 674 | +- `cargo audit && cargo deny check advisories bans sources` passed in |
| 675 | + `src/crates/netipc`. |
| 676 | +- `make` passed and rebuilt C, Rust, Go fixtures, and benchmark drivers. |
| 677 | +- `/usr/bin/ctest --test-dir build --output-on-failure` first passed 45/46 and |
| 678 | + had one `go_FuzzDecodeCgroupsLookupRequest` timeout flake. The exact target |
| 679 | + passed on rerun, and a second full `/usr/bin/ctest --test-dir build --output-on-failure` |
| 680 | + run passed all 46 tests. |
| 681 | +- `actionlint` passed. |
| 682 | +- The local C static workflow commands passed: configure `build-static`, build |
| 683 | + `netipc_protocol`, `netipc_uds`, `netipc_shm`, and `netipc_service`, then run |
| 684 | + `clang-tidy`, `cppcheck`, and `flawfinder --minlevel=5 --error-level=5`. |
| 685 | +- After the final SHM cleanup adjustment, `make` passed again and a focused |
| 686 | + `clang-tidy` plus `cppcheck` pass on `netipc_shm.c` exited 0. |
| 687 | +- `osv-scanner scan --recursive --format sarif --output-file /tmp/plugin-ipc-osv-followup.sarif .` |
| 688 | + exited 0, and the SARIF result count was 0. |
| 689 | +- `codacy-analysis analyze . --install-dependencies --output-format json --output /tmp/plugin-ipc-codacy-followup.json --parallel-tools 2 --tool-timeout 900000` |
| 690 | + exited 0 with 0 issues and 0 tool errors. |
| 691 | +- `codacy-analysis analyze . --install-dependencies --output-format sarif --output /tmp/plugin-ipc-codacy-followup.sarif --parallel-tools 2 --tool-timeout 900000` |
| 692 | + exited 0 and generated SARIF with 0 results. |
| 693 | +- `bash .agents/sow/audit.sh` passed. |
| 694 | +- `git diff --check && git diff --cached --check` passed. |
| 695 | +- `git check-ignore -v .env` confirmed `.env` is ignored by `.gitignore`. |
| 696 | + |
| 697 | +Artifact updates: |
| 698 | + |
| 699 | +- AGENTS.md: no update needed; existing project validation commands and SOW |
| 700 | + rules remain accurate. |
| 701 | +- Runtime project skills: no update needed; the repository still has no runtime |
| 702 | + `project-*` skill, and no reusable repo workflow was missing from AGENTS.md. |
| 703 | +- Specs: updated `docs/level1-transport.md` and `docs/level1-posix-shm.md` to |
| 704 | + document the POSIX private-runtime-directory rule for automatic stale unlink. |
| 705 | +- End-user/operator docs: updated the public transport docs listed above. |
| 706 | +- End-user/operator skills: updated `docs/netipc-integrator-skill.md` so |
| 707 | + downstream integrators keep provider runtime directories private enough for |
| 708 | + stale cleanup. |
| 709 | +- SOW lifecycle: this regression was appended after the prior SOW content; the |
| 710 | + SOW is marked `completed` and will be moved back to `done/` in the same |
| 711 | + commit as the implementation and docs. |
0 commit comments