🔍 CVE-2026-52767

8.2
CVSS Score
HIGH
2026-09-05
2026-09-08 21:05
✅ 완료

🇰🇷 한글 설명

YesWiki의 HttpSignatureService::verifySignature() 함수에서 PHP의 openssl_verify() 반환값을 느슨한 논리 부정 연산자로 검증하는 취약점이 발견되었습니다. openssl_verify()가 오류를 의미하는 -1을 반환할 경우, PHP의 참/거짓 판별 규칙에 의해 검증 실패가 성공으로 오인되어 공격자의 페이로드가 처리될 수 있습니다.

💡 쉬운 설명

보안 검사 도구가 '오류 발생'이라는 신호를 보냈음에도 불구하고, 프로그램이 이를 '통과'로 잘못 해석하는 문제입니다. 이로 인해 공격자가 가짜 서명을 보내도 시스템이 이를 정상적인 요청으로 믿고 실행하게 됩니다.

🇺🇸 원문 (English)

YesWiki is a wiki system written in PHP. From version 4.6.2 to before version 4.6.6, HttpSignatureService::verifySignature() checks the result of PHP's openssl_verify() with a loose boolean negation - if (!openssl_verify(...)) { throw ... }. PHP's openssl_verify has four possible return values: 1, 0, -1, and "false". The -1 row is the bypass: PHP's truthiness rules make -1 a truthy value, so !(-1) === false, the throw is skipped, and the controller proceeds to processActivity(). Any condition that makes OpenSSL's EVP_VerifyFinal() return -1 triggers the bypass. The reachable consequence is the controller silently treats a failed verification as success and processes the attacker's payload. This issue has been patched in version 4.6.6.

📍 영향받는 시스템

YesWiki version 4.6.2 to before 4.6.6

⚔️ 공격 벡터

OpenSSL의 EVP_VerifyFinal()이 -1을 반환하도록 유도하여 서명 검증 로직을 우회하는 방식

🛡️ 대응 방법

YesWiki를 최신 보안 패치가 적용된 버전 4.6.6 이상으로 업데이트하십시오.

🔧 검증 코드

명령어 결과가 'Vulnerable'로 출력되면 해당 로직이 취약한 상태임을 의미합니다.

Shell / Script
php -r 'echo (function(){$v=-1; return !$v;})() ? "Vulnerable" : "Safe";' 2>/dev/null

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L

💻 영향받는 소프트웨어

OpenSSL