
FreeBSD telnetd 버퍼 오버플로우(CVE-2011-4862)에 대한 교육용 패치 구현으로, 단계별 수정 설명과 수동 패치 지침을 포함합니다.
저는 원래 diff를 사용하여 패치를 만들려고 했습니다. 실제 패치를 보기 전에 제가 생각한 방식대로 패치를 적용했습니다. encrypt.patch는 제가 diff로 만든 원본 패치입니다. 하지만 이 패치를 freeBSD에 적용하려고 했을 때, 시스템이 이를 받아들이지 않았습니다.
대신 실제 패치를 가져와야 했습니다. 그런 다음 원래 제가 생각했던 방식대로 수정 사항을 구현하도록 패치를 변경했습니다. 이 방식은 전체 경로를 패치에 포함시키기 때문에 작동합니다.
패치에서는 단순히 길이를 MAXLENGTH와 비교하여 확인합니다. 그보다 크면 0으로 설정합니다. 이렇게 하면 len = 0인 경우로 빠지게 되어 오류가 발생합니다. 이것이 문제를 해결합니다 :-)
다음은 freeBSD에서 패치를 적용하는 방법에 대한 설명입니다. https://www.freebsd.org/security/advisories/FreeBSD-SA-11:08.telnetd.asc 실제 패치를 가져오는 대신 이 패치를 사용하세요. 작동할 것이며, 더 이상 버퍼 오버플로를 악용할 수 없게 됩니다.