Triage run: 2026-04-28T09:15:00Z (UTC)
Scan source: GH Actions nightly scan (02:07 PDT / 09:07 UTC), workflow auto-filed issues
Scan report: docs/security/scans/2026-04-28.md — ABSENT (recurring workflow gap; issues filed but doc not committed)
Triaged by: security-agent (claude-sonnet-4-6)
Slack DM sent: Yes — D0AJ7K184TV (triage outcome + #442 urgency)
docs/security/scans/2026-04-28.md not present. Same recurring gap as 2026-04-26 and 2026-04-27. Triage performed against:
- Auto-filed issues #444–#447 (today's scan)
- 2026-04-27 triage doc for trend comparison
- Baseline at docs/security/scans/2026-04-25.md
| Severity | Count | Disposition |
|---|---|---|
| CRITICAL (auto-filed) | 4 | All 4 confirmed false positives — see below |
| HIGH (new today) | 0 | None |
| HIGH resolved | 1 (#430) | pyjwt — fixed by #439 (merged 2026-04-27) |
| HIGH carry-forward | ~21 open | No change; see carry-forward table |
No genuine CRITICAL findings. No release-blocking security event.
Verdict: FALSE POSITIVE.
CommunityKey=2c04b76c-2b7d-4399-977e-d5876ba7e034 — public URL query parameter for the Uniform Law Commission UETA committee page (uniformlaws.org). Not a secret. Confirmed false positive in 2026-04-25 baseline and 2026-04-26 triage (issued as #395, #396 in prior cycle). 4th consecutive night firing.
Root cause: #442 (.gitleaks.toml allowlist) OPEN, not merged.
Action: Triage comment posted on #447. Recommend closing.
Owner: feature-developer — unblock #442.
Verdict: FALSE POSITIVE.
Runbook template placeholder: PRIVATE_KEY_PEM = -----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----. Documentation showing the shape of a secret stored in Infisical; no real key material in repo. Confirmed false positive in 2026-04-25 baseline and 2026-04-26 triage (issued as #395 in prior cycle). 4th consecutive night firing.
Root cause: #442 (.gitleaks.toml allowlist) OPEN, not merged.
Action: Triage comment posted on #446. Recommend closing.
Owner: feature-developer — unblock #442.
Verdict: FALSE POSITIVE (duplicate pair). The triage agent's own 2026-04-26 doc quotes the RSA placeholder for documentation purposes. Filed twice in the same scan run (workflow bug — duplicate issue on same finding). Not live key material. Root cause: (a) #442 allowlist not merged; (b) workflow deduplication gap producing twin issues. Action: Triage comments posted on #444 and #445. Recommend closing both. Owner: feature-developer — unblock #442; also investigate workflow deduplication.
Verdict: RESOLVED. PR #439 merged 2026-04-27T14:37Z. scripts/agents/requirements.txt now at pyjwt[crypto]==2.12.0 (fix version confirmed). console/requirements.txt also corrected: Markdown==3.8.1. Comment posted at #430 recommending close.
| PR | Title | Status | Security impact |
|---|---|---|---|
| #442 | .gitleaks.toml allowlist for 3 FP locations | OPEN | Until merged: 3-4 false CRITICALs per night |
| #443 | CF-origin guard middleware (flag-gated) | OPEN | No exposure change yet — flag default off |
| #439 | Correct dep bumps (pyjwt 2.12.0, Markdown 3.8.1) | MERGED 2026-04-27 | #430 resolved; Markdown gap closed |
| Issue | Area | Summary | Days open |
|---|---|---|---|
| #378 | frontend (Antlers) | Production source map publicly served | 3 — check if #438 closed this |
| #307–#312 | console | cryptography/pyopenssl/flask dep HIGHs | 3 |
| #313–#320 | frontend (Antlers) | npm audit (react-scripts, workbox, serialize-javascript) | 3 |
| #252 | infra | Heroku origin bypass (CF-Connecting-IP enforcement) | >4 — #443 open, flag off |
| #305, #306 | backend-v2, console | bandit B104 bind-all-interfaces | 3 |
Note: PR #438 (merged 2026-04-27) targeted #378 and #379 — sourcemap + manifest fixes. #378 may be closeable; not verified in this run.
| Metric | 2026-04-27 | 2026-04-28 | Delta |
|---|---|---|---|
| CRITICAL (genuine) | 0 | 0 | 0 |
| CRITICAL (false positive noise) | 0 (did not fire) | 4 (re-fired) | +4 |
| HIGH (new today) | 1 (#430) | 0 | -1 |
| HIGH resolved | 0 | 1 (#430 via #439) | +1 |
| HIGH total open | 22 | ~21 (net: #430 closeable) | -1 |
Pattern: The false-positive CRITICAL noise re-fired after a one-day gap, this time including triage docs themselves being scanned. Workflow also filed duplicate issues (#444 and #445 for the same finding). Both are symptoms of #442 being stuck.
Sent to D0AJ7K184TV at 09:15Z. Content: triage outcome, all 4 CRITICALs are FP, #442 urgency, #430 closeable.
docs/security/scans/2026-04-28.md absent (recurring gap)docs/security/scans/2026-04-28.md — workflow must commit scan output file. 3rd consecutive day absent.last_rotated_at per credential still unread. No new rotation flags this run.