Problem
Protected main c85d710804139c0697d7ef8fa47d02b1389e6d84 reads the security checklist and security-validation-evidence.json through non-fatal UTF-8 decoding. A byte-invalid retained artifact can therefore be replacement-normalized before checklist/JSON semantics are evaluated.
This is a separate retained-evidence boundary from #112/#114 release/publication hardening and from the stale acquisition-integrity stack #69.
RCA
- First failing boundary: retained security validation bytes -> decoded checklist/evidence values.
- Immediate cause: ordinary UTF-8 string decoding replaces malformed byte sequences.
- Root cause: semantic validation ran without an explicit valid-byte/text boundary.
- Systemic risk: corrupted evidence can become a different Unicode value before buyer/security acceptance logic observes it.
Active test-first repair
PR #119 (fix(security): reject malformed UTF-8 validation evidence) is the current direct-main repair.
- protected/live base:
c85d710804139c0697d7ef8fa47d02b1389e6d84;
- RED head:
cc599f9ee50b7f8f550c4eb03ddbe7007bd25931;
- current exact GREEN head:
64083f906171884a4b00ea90ea8e0b93ee960851;
- current compare: 2 commits ahead / 0 behind live
main, merge base exactly the protected head;
- PR state: Ready, mergeable, direct
main.
The GREEN reads exact bytes and applies fatal TextDecoder decoding before checklist or JSON semantics. File-read, invalid-UTF-8 and invalid-JSON failures remain distinct. Valid fixtures preserve existing behavior.
Exact current proof
For unchanged #119 head 64083f906171884a4b00ea90ea8e0b93ee960851:
- application
ci 31442220383: terminal success;
reviewer-ci 31442220598: terminal success;
- eligible central
Security Scan 31442220406: terminal success;
- formal reviews: 0;
- inline review threads: 0;
- CodeRabbit review was rate-limited on this exact head and remains non-passing/non-approval evidence.
Acceptance
Repository-owned implementation on #119 current exact head
Remaining protected integration / operation
Related: #5, #27, #29, #68, #112, #114, #119
Problem
Protected
mainc85d710804139c0697d7ef8fa47d02b1389e6d84reads the security checklist andsecurity-validation-evidence.jsonthrough non-fatal UTF-8 decoding. A byte-invalid retained artifact can therefore be replacement-normalized before checklist/JSON semantics are evaluated.This is a separate retained-evidence boundary from #112/#114 release/publication hardening and from the stale acquisition-integrity stack #69.
RCA
Active test-first repair
PR #119 (
fix(security): reject malformed UTF-8 validation evidence) is the current direct-mainrepair.c85d710804139c0697d7ef8fa47d02b1389e6d84;cc599f9ee50b7f8f550c4eb03ddbe7007bd25931;64083f906171884a4b00ea90ea8e0b93ee960851;main, merge base exactly the protected head;main.The GREEN reads exact bytes and applies fatal
TextDecoderdecoding before checklist or JSON semantics. File-read, invalid-UTF-8 and invalid-JSON failures remain distinct. Valid fixtures preserve existing behavior.Exact current proof
For unchanged #119 head
64083f906171884a4b00ea90ea8e0b93ee960851:ci31442220383: terminal success;reviewer-ci31442220598: terminal success;Security Scan31442220406: terminal success;Acceptance
Repository-owned implementation on #119 current exact head
Remaining protected integration / operation
mainafter integration and retain protected-source evidence separately from PR/check/model evidence.Related: #5, #27, #29, #68, #112, #114, #119