🇰🇷 한글 설명
AIL Framework의 Onion 모듈이 URL 추출 시 호스트 이름 파싱이나 도메인 검증 없이 길이와 접미사만 확인하는 성능 최적화 오류를 가지고 있습니다. 공격자가 특정 조건을 만족하는 조작된 URL을 웹 콘텐츠에 포함시키면, 프레임워크가 이를 유효한 .onion 타겟으로 오인하여 크롤러 작업 큐에 삽입할 수 있습니다. 이로 인해 크롤러가 의도하지 않은 네트워크 자원을 대상으로 동작하게 되어 타겟 선택의 무결성이 훼손됩니다.
💡 쉬운 설명
웹사이트를 자동으로 읽어오는 프로그램이 주소의 형식을 제대로 검사하지 않아 발생하는 문제입니다. 공격자가 가짜 주소를 심어두면 프로그램이 엉뚱한 곳을 방문하게 만들어 시스템을 교란할 수 있습니다.
🇺🇸 원문 (English)
The Onion module in AIL Framework contained a performance shortcut in its URL extraction logic that accepted URLs as valid .onion targets based solely on a length check (exactly 69 characters) and a suffix check (ending in ".onion"), without performing proper hostname parsing or onion-domain validation. An unauthenticated attacker who could publish or control web content crawled by the framework could embed a crafted URL containing an IP address or non-onion hostname with a path ending in ".onion" that satisfied the length and suffix conditions. Such a URL would be extracted, its domain naively sliced from the string, and queued as a legitimate onion crawler task. This allowed unauthenticated content publishers to inject arbitrary non-onion targets into the crawler's task queue, influencing crawler behavior and potentially directing it toward unintended network resources. The vulnerability required no authentication, no user interaction, and only the ability to place crafted content in a location the framework would crawl. The security impact is a loss of integrity in the crawler's target selection: the framework processes and acts upon URLs that do not correspond to legitimate .onion services.
📍 영향받는 시스템
AIL Framework (Onion module 포함 버전)
⚔️ 공격 벡터
프레임워크가 크롤링할 수 있는 위치에 특정 길이와 '.onion' 접미사를 가진 조작된 URL을 게시
🛡️ 대응 방법
Onion 모듈의 URL 추출 로직을 수정하여 엄격한 호스트 이름 파싱 및 .onion 도메인 유효성 검증 절차를 도입
🔧 검증 코드
코드 내에 호스트 이름 검증 없이 길이와 접미사만 확인하는 로직이 존재하는지 확인
grep -r "Onion module" /path/to/ail/framework/modules/ | grep "length check"