CVE-2024-5535
SSL_select_next_proto 버퍼 오버리드
- 게시됨
- 2024. 6. 27.
- 업데이트됨
- 2026. 5. 12.
- CNA 할당 중
- openssl
- 증거 관찰됨
- 2026. 8. 5.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H낮음 · 다음 30일
- 백분위수
- 92.6%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
Issue summary: OpenSSL API 함수 SSL_select_next_proto를 빈 지원 클라이언트 프로토콜 버퍼와 함께 호출하면 충돌이 발생하거나 메모리 내용이 피어에게 전송될 수 있습니다. Impact summary: 버퍼 초과 읽기는 예기치 않은 애플리케이션 동작이나 충돌과 같은 다양한 잠재적 결과를 초래할 수 있습니다. 특히 이 문제로 인해 메모리의 임의 개인 데이터 최대 255바이트가 피어에게 전송되어 기밀성 손실이 발생할 수 있습니다. 그러나 이 문제의 영향을 받는 것은 지원 클라이언트 프로토콜 목록 길이가 0인 SSL_select_next_proto 함수를 직접 호출하는 애플리케이션뿐입니다. 이는 일반적으로 유효한 시나리오가 아니며 일반적으로 공격자의 통제 하에 있지 않지만, 호출 애플리케이션의 구성 또는 프로그래밍 오류로 인해 우연히 발생할 수 있습니다. OpenSSL API 함수 SSL_select_next_proto는 일반적으로 ALPN(Application Layer Protocol Negotiation) 또는 NPN(Next Protocol Negotiation)을 지원하는 TLS 애플리케이션에서 사용됩니다. NPN은 더 오래되었고 표준화된 적이 없으며 ALPN을 위해 더 이상 사용되지 않습니다. ALPN이 NPN보다 훨씬 더 널리 배포되었다고 생각합니다. SSL_select_next_proto 함수는 서버의 프로토콜 목록과 클라이언트의 프로토콜 목록을 수락하고 서버 목록에 나타나면서 클라이언트 목록에도 나타나는 첫 번째 프로토콜을 반환합니다. 두 목록 사이에 겹침이 없는 경우 클라이언트 목록의 첫 번째 항목을 반환합니다. 두 경우 모두 두 목록 사이에 겹침이 발견되었는지 여부를 신호로 알려줍니다. SSL_select_next_proto가 길이가 0인 클라이언트 목록으로 호출되는 경우 이 조건을 인식하지 못하고 클라이언트 목록 포인터 바로 뒤의 메모리를 반환합니다(그리고 목록에 겹침이 없다고 보고합니다). 이 함수는 일반적으로 ALPN용 서버 측 애플리케이션 콜백 또는 NPN용 클라이언트 측 애플리케이션 콜백에서 호출됩니다. ALPN의 경우 클라이언트가 제공한 프로토콜 목록은 libssl에 의해 길이가 0이 되지 않도록 보장됩니다. 서버 프로토콜 목록은 애플리케이션에서 제공되며 일반적으로 길이가 0일 것으로 예상해서는 안 됩니다. 이 경우 SSL_select_next_proto 함수가 예상대로 호출된 경우(클라이언트가 제공한 목록이 client/client_len 매개변수로 전달된 경우) 애플리케이션은 이 문제에 취약하지 않습니다. 애플리케이션이 실수로 길이가 0인 서버 목록으로 구성되었고, 실수로 해당 길이가 0인 서버 목록을 client/client_len 매개변수로 전달했으며, 추가로 "겹침 없음" 응답을 올바르게 처리하지 못한 경우(일반적으로 ALPN에서 핸드셰이크 실패를 초래함) 이 문제에 취약해집니다. NPN의 경우 프로토콜은 클라이언트가 겹침이 없을 때 기회적으로 프로토콜을 선택할 수 있도록 허용합니다. OpenSSL은 이를 지원하기 위해 겹침이 없는 경우 첫 번째 클라이언트 프로토콜을 반환합니다. 클라이언트 프로토콜 목록은 애플리케이션에서 제공되며 일반적으로 길이가 0일 것으로 예상해서는 안 됩니다. 그러나 SSL_select_next_proto 함수가 client_len이 0인 상태로 실수로 호출되면 잘못된 메모리 포인터가 대신 반환됩니다. 애플리케이션이 이 출력을 기회적 프로토콜로 사용하면 기밀성 손실이 발생합니다. 이 문제는 애플리케이션이 ALPN 대신 NPN을 사용하는 경우 취약할 가능성이 가장 높기 때문에(그러나 NPN은 널리 사용되지 않음) 낮은 심각도로 평가되었습니다. 또한 애플리케이션 구성 또는 프로그래밍 오류가 필요합니다. 마지막으로 이 문제는 일반적으로 공격자의 통제 하에 있지 않아 적극적인 악용 가능성은 낮습니다. 3.3, 3.2, 3.1 및 3.0의 FIPS 모듈은 이 문제의 영향을 받지 않습니다. 이 문제의 낮은 심각도로 인해 현재 OpenSSL의 새 릴리스를 발행하지 않습니다. 수정 사항은 다음 릴리스가 제공될 때 포함될 예정입니다.
소스
1책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.