# PR #254 double `--key` HIGH — evidence-dismiss 근거 (ANU read-only 검증)

상태명: `TASK2774P16_PR254_DOUBLE_KEY_HIGH_EVIDENCE_DISMISS_APPROVED_ACTIVE_FALSE`
회장 결정: 2026-06-26 — evidence-dismiss 승인(+16 micro-fix 미승인). 분류: **unreachable defensive edge**.

## 1. Gemini finding (security-HIGH, 2026-06-26T05:25:19Z, head 7f10524a)
`_redact_callback_argv`에서 연속 `--key --key secret` 입력 시, 두 번째 `--key` 처리에서 `redact_next`가
리셋되어 그 다음 `secret`(실제 키)이 마스킹 없이 노출될 수 있다는 지적.

## 2. 논리적 재현 결과 (ANU 직접 실행, fresh head 7f10524a)
- `_redact_callback_argv(["--key", RAW])` → `['--key', '<ANU_SEALED_KEY>']` — 노출 0 (정상)
- `_redact_callback_argv(["--key","--key", RAW])` → `['--key', '<ANU_SEALED_KEY>', RAW]` — **RAW 노출 재현됨**
- `_redact_callback_argv(["--key","--key="+RAW])` → `['--key', '<ANU_SEALED_KEY>']` — 노출 0
→ **코드 패턴상 재현은 사실** (연속 `--key --key <raw>` 형태일 때 노출).

## 3. 실제 argv 생성 경로 도달 가능성 — 도달 불가
`--key`가 argv 리스트에 들어가는 지점은 코드 전체에서 **정확히 2곳**:
- `dispatch/anu_owned_callback_enforcement.py:196` — `"--key", self.anu_key` (cron-history wrapper)
- `dispatch/anu_result_pickup_runner.py:1227` — `"--key", key_value` (owner pickup argv builder)

두 경로 모두 **`["--key", <value>]` 형태로 정확히 1회만 append**. argv는 외부 사용자 입력이 아니라
**내부 빌더가 고정 생성**한다. → `["--key","--key","secret"]` 같은 **연속 `--key`는 어떤 정상 생성 경로에서도
도달 불가**.

## 4. 판정
- 이번 신규 HIGH = **실제 reachable vulnerability 아님 → defensive robustness edge case**.
- 실제 reachable 했던 `--key=VALUE` redaction은 **+14에서 이미 수정**. schedule_id None/falsy도 **+15에서 수정**.
- 따라서 PR #254의 실제 raw key exposure blocker 아님.

## 5. +16 미승인 사유
- 도달 불가 edge이고, +14·+15에 이어 동일 redaction/audit 함수 주변을 계속 파는 **defensive edge loop**.
- 여기서 +16을 열면 `--key\tvalue` / `--key=value=value` / `--KEY` / unicode dash 등 **끝없는 edge 변형**으로
  이어질 위험(회장 판단). → redaction defensive edge loop **중단**.

## 6. LOOP_BOUNDARY (회장 verbatim)
- 동일 redaction parser 주변 **추가 unreachable edge finding은 자동 micro-fix 금지**.
- 새 HIGH가 **진짜 reachable path**를 제시 → **CHAIR_REQUIRED** 재보고.
- **unreachable edge → evidence-dismiss 후보**로 보고. +16/+17 자동 루프 금지.

## 7. 후속 조치
- 본 evidence 기록 후 Gemini thread에 evidence-based comment("valid defensive edge, unreachable through
  canonical argv builders") + resolve. unresolved 0 후 final gate 재확인 → MERGE_READY_CANDIDATE 판정.
