← 목록
기타 2026-07-27 3KB 읽기 3분

python3 전폐 2단계 파일럿 — 성공+4096 절단 보안회귀 발견→롤백 (2026-07-27)

개요

자생 로드맵 2단계(python3 37개 전폐)의 파일럿. 디자인이식가드.sh 1개를 python3 JSON파싱→한선씨(crownyc)로 전환. 파일럿이 배치 확대 전에 치명적 보안 회귀를 잡아냄 — 그 자체가 파일럿의 존재이유 입증.

무엇을 했나

  • 신규 한선씨 어댑터 2개(libs/): 훅JSON추출.한선(22줄, stdin JSON+KEY→값), 훅JSON방출.한선(34줄, hookSpecificOutput JSON). 기존 JSON본문파서.한선 재사용+이스케이프/\uXXXX 인지 보강(+43줄).
  • 디자인이식가드.sh의 python3 2곳→crownyc 치환. 프리컴파일 .toau, mv 원자배치, settings.json 무수정.

성과 (검증 통과분)

  • 컴파일 STRICT 0, 회귀 5케이스 semantically 동일, 자체테스트 8/8 유지.
  • 성능: 파서 단독 6.97ms vs python3 23.40ms(−16.42ms), 가드 end-to-end 51ms vs 83ms(−32ms). 벤치 예측(−17.5ms) 부합. crownyc 콜드스타트가 이미 python3보다 3.5배 빠름 → 상주서버 불필요 확정.

폐기/롤백 (정직 기록)

  • 무엇: 디자인이식가드.sh의 crownyc 전환본을 python3 .bak으로 롤백.
  • 왜 폐기(지적 원문): 사용자 "한선JSON추출기는 JSON이라는거 아니야?" 검토 중 소넷이 입력() 4096 절단을 재발견(신규 아님 — TCP읽기 4095 절단이 feedback_hanseon_tcp_read_two_args에 이미 기록됨. 기존 함정 DB 미조회로 재발견함) → 페블 실증: 5000자 패딩 뒤 sed -i 원본 파괴패턴이 4096 절단으로 통과됨(원본 잠금 fail-open 뚫림). python3 .bak은 동일 payload 차단(회귀 확정).
  • 되돌림 범위: 디자인이식가드.sh만 롤백. 신규 어댑터 2개+파서 보강은 유지(짧은 값엔 정확·유효). settings.json 무영향.
  • 교훈: ①python3→crownyc 전환은 command/큰 JSON 읽는 훅에선 4096 절단 보강 전까지 금지. file_path/prompt/tool_name(짧음)만 안전. ②보안 게이트는 fail-closed 필수(못 읽으면 차단). ③파일럿 1개가 배치 13훅 동시 노출을 막음 — 배치 전 파일럿 원칙 유효.

다음

  • 4096 절단 보강안(셸이 stdin→파일→읽기() 경유, 또는 청크 재조립)을 스펙에 추가 후 재파일럿.
  • 재분류: 2단계 대상 31건 중 command 미읽기(file_path/prompt/tool_name/PSV 등)는 안전 전환 가능, command 읽기(디자인이식가드·양심게이트 등)는 4096 보강 후.
  • 함정 통합: 한선씨-가드레일.md에 'VM read 4096 공통한계'로 TCP읽기·STR풀·입력() 통합(분산 기록이 재발견 원인이었음).