🇰🇷 한글 설명
OpenSSL 1.4.9 미만 버전의 openssl-encrypt에서 명령행 인자 덤프 시 비밀번호가 제대로 가려지지 않는 취약점이 발견되었습니다. 약식 옵션(예: -apHunter2)이나 축약된 긴 옵션(예: --passw)을 사용할 경우 보안 필터를 우회하여 평문 비밀번호가 stderr로 노출됩니다. 이로 인해 터미널 로그나 CI 로그를 볼 수 있는 사용자가 비밀번호를 탈취할 수 있습니다.
💡 쉬운 설명
프로그램이 디버깅 정보를 기록할 때 비밀번호를 별표(*)로 가려야 하는데, 특정 방식으로 명령어를 입력하면 비밀번호가 그대로 글자로 남는 문제입니다. 로그 파일을 볼 수 있는 사람이라면 누구나 비밀번호를 읽을 수 있어 위험합니다.
🇺🇸 원문 (English)
openssl-encrypt before 1.4.9 fails to redact the file password in its --debug argv dump when the password is supplied via bundled short-option spellings (e.g. -apHunter2) or abbreviated long-option spellings (e.g. --passw). The sanitizer only recognized exact option names, --option=value forms, and tokens starting with -p, so these spellings bypass the redaction chokepoint and the cleartext password is written to stderr. Anyone with access to that output (terminal scrollback, merged 2>&1 output, CI job logs, or the GUI's persistent debug log) can recover the password.
📍 영향받는 시스템
OpenSSL 1.4.9 미만 버전의 openssl-encrypt
⚔️ 공격 벡터
축약된 옵션 형식을 사용하여 명령어를 실행한 후, 생성된 디버그 로그나 터미널 출력 내용을 확인하여 탈취
🛡️ 대응 방법
OpenSSL을 1.4.9 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 1.4.9 미만인지 확인하여 취약 여부를 판단합니다.