🇰🇷 한글 설명
phpIPAM 1.8.1 이하 버전에서 임시 공유 토큰이 발급된 서브넷에 속한 IP 주소인지 확인하는 검증 과정이 누락되었습니다. 공격자는 유효한 임시 공유 URL을 이용해 subnetId 파라미터를 조작함으로써, 권한이 없는 모든 서브넷의 IP 주소, 호스트네임, MAC 주소 및 민감한 메모 정보를 열람할 수 있습니다.
💡 쉬운 설명
임시로 공유된 링크를 가진 사람이 숫자 하나만 살짝 바꾸면, 원래 볼 수 없었던 다른 네트워크의 모든 상세 정보를 다 훔쳐볼 수 있는 보안 결함입니다. 이 과정에서 네트워크 장비의 주소나 관리자 메모 같은 중요한 정보가 유출될 수 있습니다.
🇺🇸 원문 (English)
phpIPAM through 1.8.1 fails to verify that a requested IP address belongs to the subnet a temporary share token was issued for. In app/temp_share/index.php and app/temp_share/address.php, when the share type is 'subnets', the subnetId parameter is used directly as a database primary key to fetch an address without confirming the address belongs to the authorized subnet. An unauthenticated party holding any valid, non-expired temporary share URL can enumerate the subnetId parameter to read every IP address record across all sections and subnets, including hostnames, DNS names, MAC addresses, owner/contact fields, and notes (which may contain credentials and configuration details).
📍 영향받는 시스템
phpIPAM 1.8.1 및 그 이전 버전
⚔️ 공격 벡터
유효한 임시 공유 URL을 획득한 후 subnetId 파라미터를 순차적으로 변경하여 데이터 열람 (ID Enumeration)
🛡️ 대응 방법
phpIPAM을 최신 보안 패치가 적용된 버전으로 업데이트하거나, 공유 토큰 사용 시 서브넷 소유권 검증 로직을 적용해야 합니다.
🔧 검증 코드
설치된 phpIPAM의 버전이 1.8.1 이하인지 확인하여 취약 여부를 판단합니다.
php -r 'echo "phpIPAM version check";' # 실제 버전 확인은 설치된 소스 코드의 version.php 또는 composer.json 확인 필요