CVE-2020-26243 in Nanopb
요약
\~에 의해 VulDB • 2026. 06. 06.
Nanopb는 작은 코드 크기의 Protocol Buffers 구현체입니다. 버전 0.4.4 및 0.3.9.7 이전의 Nanopb에서는 동적 할당이 활성화되어 있고 oneof 필드가 동적 필드를 포함하는 정적 서브메시지를 가지며, 디코딩 중인 메시지가 해당 서브메시지를 여러 번 포함하는 경우, 특정 방식으로 구성된 메시지를 디코딩할 때 메모리 누수가 발생할 수 있습니다. 이는 일반적인 메시지에서는 드물게 발생하지만, 신뢰할 수 없는 데이터를 파싱할 때는 우려되는 사항입니다. 이 문제는 버전 0.3.9.7 및 0.4.4에서 수정되었습니다. 다음 우회 방법(workarounds)을 사용할 수 있습니다: 1) oneof 필드에 대해 `no_unions` 옵션을 설정합니다. 이렇게 하면 C union 대신 필드가 별도로 생성되어 문제의 코드가 트리거되는 것을 방지합니다. 2) oneof 내부의 서브메시지 필드 유형을 `FT_POINTER`로 설정합니다. 이렇게 하면 전체 서브메시지가 동적으로 할당되며 문제의 코드가 실행되지 않습니다. 3) nanopb에서 아레나 할당자(arena allocator)를 사용하여 이후에 모든 메모리를 해제할 수 있도록 합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.