Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ovpn-kernel-backport — CVE-2026-74727에 대한 업스트림 OpenVPN 커널 수정 사항으로, Ubuntu 커널 7.0.0-38.38에서 테스트되었습니다. 빌드 지침과 기능 테스트 결과를 포함합니다. | Kitploit
도구/GitHubGitHub/kosifuchs/ovpn-kernel-backport
Vulnerability AnalysisCode AnalysisNetwork SecurityPapers & Research
GitHubkosifuchs/ovpn-kernel-backport

ovpn-kernel-backport

CVE-2026-74727에 대한 업스트림 OpenVPN 커널 수정 사항으로, Ubuntu 커널 7.0.0-38.38에서 테스트되었습니다. 빌드 지침과 기능 테스트 결과를 포함합니다.

저장소 보기
11개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

OpenVPN 커널 모듈 백포트 리뷰

x86_64에서 Ubuntu 커널 소스 패키지 linux 7.0.0-38.38을 대상으로 CVE-2026-74727과 관련된 업스트림 수정 사항에 대해 로컬 빌드, 기능 테스트, 집중 소스 리뷰, 결정론적 VPN-IP 및 전송 엔드포인트 재해시 불변식 회귀 테스트를 문서화한 것입니다. 전송 엔드포인트 테스트는 로컬에서 빌드한 Generic KASAN 커널에서도 다시 빌드하고 실행했습니다.

출처 및 범위

이 문서는 기존 업스트림 수정 사항에 대한 백포트 리뷰이며, 새로 발견된 취약점이나 독자적인 보안 수정이 아닙니다. 기록된 업스트림 작성자는 Antonio Quartulli입니다. 기록된 커밋은 33ec10567fe14456063daf549fdf1a4f53448e4c입니다.

업스트림 패치: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/?id=33ec10567fe14456063daf549fdf1a4f53448e4c

drivers/net/ovpn/peer.c의 변경 사항은 이미 피어 ID 해시 테이블에서 제거된 피어를 재해시하는 것을 방지합니다. 배포 시 원본 패치 헤더, 작성자 정보 및 라이선스를 보존하십시오. 이 문서는 커널 패치의 라이선스를 변경하지 않습니다.

원본 업스트림 패치는 바이트 단위로 그대로 포함되어 있습니다. 해당 SHA-256은 기록된 테스트 세션에서 사용된 아티팩트와 일치합니다. 작성자, 커밋 메시지 및 코드 변경 사항은 GitHub의 공개 업스트림 커밋과 대조하여 확인했습니다. 바이너리는 포함되어 있지 않습니다.

기록된 체크섬

패치 체크섬은 포함된 파일과 독립적으로 대조하여 확인했습니다. 모듈 체크섬은 운영자의 테스트 세션 중에 기록되었으며, 바이너리는 여기에 배포되지 않습니다.

아티팩트SHA-256
CVE-2026-74727-upstream.patchbaf0962c60b182776a86e040d2ec5b35eea2737c2e2eb6f17f87eb7d2fe47b24
테스트된 ovpn.ko0853fdce14ce1c4d64857871dc873bf98a1b8fe8243bf042ad6daffc906e6d27

적용 및 빌드

정확한 Ubuntu 소스 패키지 linux 7.0.0-38.38을 별도로 추출한 복사본을 사용하십시오. 먼저 일치하는 커널 헤더와 빌드 툴체인을 설치하십시오. 기록된 컴파일러는 Ubuntu GCC 15.2.0-16ubuntu1이며, 실행 중인 커널의 컴파일러와 일치합니다.

소스 루트에서 패치가 상위 디렉터리에 있는 상태로:

patch --dry-run --batch --forward --fuzz=0 -p1 < ../CVE-2026-74727-upstream.patch
patch --batch --forward --fuzz=0 -p1 < ../CVE-2026-74727-upstream.patch
make -C /lib/modules/7.0.0-38-generic/build \
  M="$PWD/drivers/net/ovpn" CONFIG_OVPN=m \
  CC=x86_64-linux-gnu-gcc -j1 modules

기록된 패치 적용은 라인 오프셋 -6 및 -5에서 퍼즈 없이(zero fuzz) 이루어졌습니다. 빌드는 종료 코드 0을 반환했습니다. vmlinux를 사용할 수 없어 BTF 생성은 건너뛰었습니다. 모듈 vermagic은 7.0.0-38-generic SMP preempt mod_unload modversions와 일치했습니다.

vermagic 일치와 성공적인 빌드는 모듈이 안전하다거나 취약점이 완전히 검증되었다는 것을 입증하지 않습니다.

기록된 기능 테스트

테스트는 커널 7.0.0-38-generic과 Secure Boot가 비활성화된 Hyper-V Ubuntu VM에서 수동으로 수행되었습니다. 결과는 운영자가 제공한 터미널 출력을 기반으로 합니다:

  • 테스트 모듈이 로드되었고, 해당 build-ID가 로드된 모듈의 build-ID와 일치했습니다.
  • 기존 OpenVPN DCO 연결이 성공적으로 재연결되었습니다.
  • 별도의 네트워크 네임스페이스에서 MP 인터페이스 생성 및 삭제가 지원되었습니다.
  • 테스트 피어를 생성, 조회, 구성 및 삭제할 수 있었습니다.
  • 수정된 테스트 CLI가 테스트 피어의 VPN IPv4 주소를 192.0.2.2에서 192.0.2.3으로 변경했으며, 반환된 피어 상태가 변경을 확인했습니다. 이는 임시 테스트 네임스페이스로 한정되었고 운영 VPN 주소는 변경되지 않았습니다.
  • 검토된 커널 로그에는 일치하는 BUG, Oops, KASAN, general protection fault 또는 soft lockup 메시지가 없었습니다. 서명되지 않은 out-of-tree 모듈 taint 메시지는 존재했습니다.
  • 테스트 후 테스트 네임스페이스가 제거되었고 배포판 모듈이 다시 로드되었습니다. 운영 VPN이 재연결되었습니다.

결정론적 VPN-IP 재해시 회귀 테스트

2026-10-06에 두 개의 독립 실행형 테스트 모듈이 패치되지 않은 백업과 패치된 소스에서 추출한 실제 ovpn_peer_hash_vpn_ip() 함수를 실행했습니다. 비공개 합성 객체는 전체 기간 동안 할당된 상태로 유지되었습니다. 해시 테이블에서 제거가 완료된 상황을 시뮬레이션한 후, 테스트는 ovpn->lock 하에서 해당 함수를 다시 호출했습니다.

속성패치 전패치 후
활성 피어가 IPv4 및 IPv6 테이블에 등록됨PASSPASS
제거된 피어가 IPv4 및 IPv6 테이블 밖에 유지됨FAILPASS
제거된 피어 재해시 후 점유된 IPv4 / IPv6 버킷1 / 10 / 0

이는 특정 제거 후 불변 조건에 대한 런타임 검사이며, 동시 삭제 경쟁이나 use-after-free의 재현은 아닙니다. 베이스라인의 불변 조건 실패는 예상된 것으로, 테스트가 두 함수 버전을 구별함을 보여줍니다. 두 모듈은 이후 언로드되었습니다. 운영 VPN은 주소가 변경되지 않은 채 활성 상태로 유지되었습니다. 검토된 로그 구간에는 테스트 결과가 포함되어 있었고 일치하는 BUG, Oops, general protection fault 또는 soft lockup 메시지는 없었습니다.

기록된 출력, 재현 지침 및 한계는 TESTING.md를 참조하십시오. 생성기는 tests/prepare-ovpn-rehash-regtest.py에 있습니다.

결정론적 전송 엔드포인트 / float 회귀 테스트

2026-10-06에 독립 실행형 테스트 모듈은 또한 패치되지 않은 소스와 패치된 소스에서 추출한 실제 ovpn_peer_endpoints_update() 함수를 프로덕션 바인딩 헬퍼와 함께 실행했습니다. IPv4와 IPv6 모두에서 비공개 합성 패킷 헤더가 활성 피어를 float시킨 후, 해시 항목이 제거되었지만 저장소는 할당된 상태로 유지된 상황에서 또 다른 엔드포인트 업데이트를 발생시켰습니다.

IPv4 및 IPv6 모두에 대한 속성패치 전패치 후
활성 피어가 float하고 전송 테이블에 유지됨PASSPASS
모델링된 제거 후 엔드포인트 업데이트에 도달함PASSPASS
제거된 피어가 전송 테이블 밖에 유지됨FAILPASS
제거된 피어 업데이트 후 점유된 전송 버킷10

패킷은 전송되지 않았고, 실제 인터페이스, VPN 피어 또는 주소는 수정되지 않았습니다. 두 테스트 모듈은 이후 언로드되었고, 운영 VPN은 주소가 변경되지 않은 채 활성 상태로 유지되었습니다. 검토된 로그 구간에는 네 가지 테스트 결과가 포함되어 있었고 일치하는 BUG, Oops, general protection fault 또는 soft lockup 라인은 없었습니다.

범위, 재현 지침 및 기록된 결과는 FLOAT-TESTING.md 및 tests/prepare-ovpn-float-regtest.py를 참조하십시오.

추가 KASAN 실행 및 소스 검토

2026-10-06에 검토된 Ubuntu 소스는 CONFIG_KASAN=y, CONFIG_KASAN_GENERIC=y, CONFIG_KASAN_OUTLINE=y 및 CONFIG_STACKTRACE=y로 전체 커널로 빌드되었습니다. 릴리스 문자열은 7.0.14-ovpn-kasan이었습니다. 커널 및 모듈 빌드는 종료 코드 0을 반환했습니다. VM은 이 커널로 부팅되었고 관리 VPN 서비스가 활성 상태였습니다.

기존의 합성 float 모듈은 해당 전체 빌드에 맞춰 재빌드되었으며, 전송 후 체크섬과 vermagic으로 검증되었습니다. IPv4 및 IPv6 결과는 변경되지 않았습니다. 활성 피어 및 엔드포인트 업데이트 검사는 두 변형 모두에서 통과했습니다. 제거된 피어 불변 조건은 기준 버전에서 실패했고 패치된 변형에서는 통과했습니다. 제공된 필터링된 테스트 로그에는 KASAN 오류가 나타나지 않았습니다. 이는 합성 테스트의 KASAN 활성화 실행이며, 원래의 use-after-free에 대한 KASAN 재현은 아닙니다. VPN-IP 전용 테스트는 KASAN에서 다시 실행되지 않았습니다.

테스트 모듈은 언로드되었습니다. 이후 VM은 배포판 커널 7.0.0-38-generic으로 돌아갔고, 관리 VPN이 활성 상태임을 확인했습니다. 별도로 설치된 테스트 커널과 그 모듈은 향후 테스트를 위해 계속 사용 가능하며, 배포판 커널이 GRUB 기본값으로 설정되어 있습니다.

구성, 정확한 결과, 아티팩트 해시 및 한계에 대해서는 KASAN-TESTING.md를 참조하십시오. 운영자가 제공한 소스 발췌를 기반으로 한 집중적인 잠금, 참조 및 릴리스 경로 검토에 대해서는 SOURCE-REVIEW.md를 참조하십시오.

한계

동시 삭제/재해시 경합은 재현되지 않았습니다. 수정된 두 재해시 경로는 결정론적 합성 제거 후 상태에서 테스트되었으며, 이후 KASAN에서 다시 실행된 것은 float 테스트뿐이었습니다. 이는 실제 동시성 하에서의 완전한 정확성을 입증하지 않습니다. 익스플로잇 기반 회귀 테스트, KCSAN 활성화 실행, lockdep 활성화 실행 또는 지속적인 동시성 테스트는 수행되지 않았습니다. 이 테스트들은 완전한 인증 네트워크 수신 경로, 실제 프로덕션 삭제 콜백 또는 모든 해시 테이블 조회를 실행하지 않습니다. 실제 참조 카운트 및 RCU 피어 해체는 정적으로 검토되었을 뿐, 완료된 수명 주기 테스트로 실행되지는 않았습니다. 이전의 VPN IPv4 CLI 테스트는 API 동작만 확인했습니다.

이전의 독립형 백포트 모듈은 영구적으로 설치되지 않았습니다. 별도의 KASAN 테스트 커널이 나중에 설치되어 기존 VM에서 수동으로 부팅되었으며, 테스트 중에도 해당 VM의 관리 VPN이 계속 사용 중이었습니다. 이는 완전히 일회용 환경이 아니었습니다. VM은 배포판 커널로 돌아갔습니다. 이 결과들은 테스트 커널의 프로덕션 배포를 권장하지 않습니다. 다른 OpenVPN 커널 취약점은 이 패치의 범위를 벗어났습니다. 바이너리 릴리스는 제안되지 않습니다.

임시 모듈 테스트 중 복구

콘솔 접근이 가능한 격리된 테스트 VM을 사용하십시오. VPN 서비스를 중지하면 SSH 세션이 끊길 수 있습니다. 네트워크 네임스페이스는 호스트 커널을 공유하므로 커널 크래시로부터 VM을 보호하지 못합니다.

배포판 모듈 파일은 변경하지 않고 유지하십시오. 테스트 모듈이 insmod로만 로드된 경우, 이를 사용하는 모든 서비스를 중지하고 강제 제거 없이 언로드한 다음, modprobe ovpn으로 원본을 로드하고 콘솔에서 해당 서비스를 다시 시작하십시오. 언로드가 실패하면 강제 언로드하지 말고 남아 있는 사용자를 확인하십시오. 영구 설치가 이루어지지 않은 경우 재부팅해도 배포판 모듈로 돌아갑니다.

도구 다운로드