크라우니네임(name.crowny.org:9621) 보안 적대점검 — M10
개요
crowny-name 작업계획.md M10(보안 적대점검) 수행. 실제 curl 익스플로잇으로 16개 공격면 재현 → 확증 취약 6건 근본 수리 → STRICT 0경고 재컴파일·72/72 회귀 PASS·라이브 재기동 후 동일 익스플로잇 재현 실패 확인.
확증 취약(수리 완료)
- PSV 인젝션 → Super-admin 완전 탈취(Critical) —
POST /api/setup의 자유입력 필드에 \n+\| 삽입으로 사용자.psv에 임의 위조 행(role=Super) 주입 → 위조 핸들로 감사로그 export·역할부여까지 전부 통과. 원인: 한선씨/온보딩.한선 온보딩저장()이 PSV 이스케이프 미적용.
- 무인증 쓰기 4건 —
PATCH /api/cards/{id}/tier·POST /api/handshake/{id}/accept·/decline·POST /api/scan이 X-Crowny-User 헤더 존재 여부조차 검사하지 않아 완전 익명 요청으로 통과(임의 tier 변경·임의 핸드셰이크 수락으로 ACL 개방 등).
- 감사로그 위변조 —
네임_감사조립()이 detail만 이스케이프하고 actor/target(공격자 완전통제 값)은 미이스케이프 → 파이프 삽입으로 위조 이벤트가 실제 이벤트를 밀어내고 자리 차지.
- 반사형 XSS —
GET /@{handle} 404 응답이 URL의 핸들을 이스케이프 없이 HTML에 삽입.
수리
/Users/ef/crowny-name/한선씨/온보딩.한선: 전 자유입력 필드 네임_PSV이스케이프 적용
/Users/ef/crowny-name/한선씨/네임엔진.한선: 네임_감사조립() actor/target도 이스케이프
/Users/ef/crowny-name/서버.한선: 4개 무인증 라우트에 헤더 필수 게이트, _핸들형식유효() 신설로 XSS/경로조작 입력 차단
- 백업:
서버.한선.bak-sec
회귀
STRICT 0경고,
네임엔진검증.한선 72/72 PASS, LaunchAgent 재기동 후
/@kps 200·
/api/me 200·정상 핸드셰이크 수락 흐름 200 확인. 테스트로 오염된 데이터는 백업본으로 복원.
상세 보고서
/Users/ef/crowny-name/docs/보안점검-보고서.md (16개 시도 항목 전체 표 + curl 명령·응답·판정)
잔여 이슈
web/app.한선(현재 서버 라우트 미배선)의 티어변경()이 셸 커맨드에 명함id를 이스케이프 없이 삽입 — 지금은 도달 불가라 비취약이나, 향후 라우트 연결 시 RCE 위험(하드닝 권고만, 미수정).