
CVE-2018-16323용 도구
CVE-2018-16323은 XBM 이미지를 처리할 때 발생하는 메모리 누수 취약점입니다. XBM 이미지를 다른 이미지 형식으로 변환한 후, 이미지 데이터에서 누수된 메모리 바이트를 추출할 수 있습니다.
d4d에 의해 발견됨.
CVE-2018-16323 PoC를 생성하기 위한 아주 간단한 도구입니다. samples 디렉토리에는 바로 사용할 수 있는 미리 생성된 PoC가 포함되어 있습니다.
이 도구를 사용하려면 imagemagick을 설치해야 합니다:
apt-get -y install imagemagick
그리고 다음 명령어로 확인합니다:
convert -v
모든 버전이 적합합니다.
Usage poc generator: ./XBadManners.sh gen WIDTHxHEIGHT NAME.xbm [minimal]
Example gen: ./XBadManners.sh gen 512x512 poc.xbm
Example gen: ./XBadManners.sh gen 1024x1024 poc_minimal.xbm minimal
Usage result recovery: ./XBadManners.sh recover SAVED_PREVIEW.png|jpeg|gif|etc
Example recovery: ./XBadManners.sh recover avatar.png
minimal 모드를 사용하면 BurpSuite 등에 붙여넣기 위해 가능한 가장 작은 XBM 본문을 생성할 수 있습니다. Minimal 모드는 테스트되었으며 정상 작동합니다. 이 모드에서는 원하는 너비와 높이를 설정할 수 있습니다.
단일 이미지를 사용하여 많은 메모리를 추출할 수 있습니다. 유일한 제한은 백엔드에서 생성되는 이미지의 최대 크기 제한입니다.
preview.png를 복구해 볼 수 있습니다. 출력물에서 읽을 수 있는 단어가 나오면 모든 것이 정상 작동하고 있음을 의미합니다.
./XBadManners.sh gen 512x512 poc.xbm 실행./XBadManners.sh recover result.png 실행업로드할 때마다 미리보기가 크게 변경된다면 좋은 신호입니다.
복구 모드는 빠른 확인을 위해 만들어졌으며 ImageMagick이 지원하는 모든 이미지 형식에서 정상 작동해야 하지만, png, jpeg, gif에 대해서만 테스트되었습니다. 스크립트를 수정하여 이미지에서 메모리 추출 로직을 조정할 수 있습니다(단순하지만 보기 흉함).

XBM은 흑백 형식입니다. 따라서 결과물은 얼룩말처럼 보일 것입니다(상상력이 풍부하다면). 기본적으로 검은색이 많을수록 추출된 데이터가 많은 것입니다.
해당 커밋 이후 및 해당 커밋 이전의 모든 ImageMagick 빌드가 취약합니다.