fix(security): outbound URL 내부주소·host 검증 전수 강화
서버가 외부 입력으로 목적지가 제어되는 outbound HTTP 요청을 보내는 지점을 전수 조사해, 내부망(사설 IP·루프백·링크로컬·메타데이터)과 host 위조를 차단한다. KVE-2026-1546(이니시스 인증 URL 접두사 매칭 우회)과 동일 클래스의 지점(언어팩 URL 설치, 스케줄 URL 호출, 배송비 계산 API, GitHub URL 판정)을 코어 공용 유틸 App\Support\OutboundUrlValidator 로 수렴시켰다. - 접두사 매칭을 host 완전일치로 교체 — userinfo(@) 위장과 접미사 확장 도메인 우회 벡터 차단. - 사내 서버 호출이 정당한 관리자 지점(스케줄·외부 API)은 신규 설정 security.allow_internal_outbound_urls(기본 off)로 옵트인. - 언어팩 URL 설치는 원격 코드 다운로드라 옵트인과 무관하게 내부 주소 항상 차단. - 웹소켓 연결 테스트는 localhost·사설 IP 가 정상 구성이므로 구조적 위조만 차단. 각 지점에 red 재현 → 수정 → green 회귀 테스트 + 실브라우저 E2E 로 검증. 수기 API 문서가 자동 재생성으로 소실되는 사고를 막는 PreToolUse 훅을 함께 추가한다.
This commit is contained in:
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
## [1.0.1] - 2026-07-09
|
||||
|
||||
### Security
|
||||
|
||||
- 본인인증 결과를 확인하러 이니시스 서버에 접속할 때, 접속할 주소가 실제 이니시스 주소가 맞는지 정확히 확인하도록 바로잡았습니다. 이전에는 주소의 앞부분만 맞으면 통과시켰기 때문에, 이니시스 주소를 앞에 붙인 가짜 주소가 검사를 통과할 수 있었습니다. 이를 악용하면 사이트 서버가 공격자의 서버나 외부에 공개되지 않은 내부 주소로 접속하게 만들 수 있었고, 공격자가 임의로 꾸민 인증 결과(이름·생년월일 등)를 진짜처럼 받아들이게 만들 수도 있었습니다. (KISA 측에서 제보해주셨습니다 — KVE-2026-1546)
|
||||
|
||||
### Changed
|
||||
|
||||
- 라이브 가맹점 MID 프리픽스를 이니시스 정책 변경에 맞춰 SRB 로 갱신했습니다 (설정 화면 고정 프리픽스 표시·입력 안내 문구 포함).
|
||||
|
||||
Reference in New Issue
Block a user