Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
nginx-cve-fix — 소스 빌드된 nginx 1.25.5 컨테이너, 백포트된 CVE-2026-42945 수정, OpenSSL 업그레이드, 완전한 공급망 증명 체인, VEX 증명 포함. | Kitploit
도구/GitHubGitHub/barappteam/nginx-cve-fix
Vulnerability ScannersContainer SecurityVulnerability AnalysisConfiguration AuditingDevSecOpsSupply Chain Security
GitHubbarappteam/nginx-cve-fix

nginx-cve-fix

소스 빌드된 nginx 1.25.5 컨테이너, 백포트된 CVE-2026-42945 수정, OpenSSL 업그레이드, 완전한 공급망 증명 체인, VEX 증명 포함.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Nginx CVE 수정 - nginx:1.25-bookworm용 소스 빌드 드롭인

공식 nginx:1.25-bookworm 이미지에 존재하는 두 개의 CVE를 수정하면서 업스트림 런타임 동작을 유지하는 소스 빌드 nginx 1.25.5 컨테이너 이미지입니다.

CVE구성 요소심각도기법검증 모델
CVE-2024-6119OpenSSL / libssl3높음종속성 버전 업스캐너 검증 가능: dpkg 데이터베이스에서 libssl3 3.0.20 확인 가능
CVE-2026-42945nginx ngx_http_rewrite_module심각백포트된 소스 패치출처 검증 가능: 패치 파생 + 회귀 테스트 + 빌드 증명 + VEX

이 두 가지는 서로 다른 수정 모델을 나타냅니다:

  1. 버전 업 (CVE-2024-6119) - 수정된 라이브러리 버전이 dpkg 데이터베이스를 통해 스캐너에 직접 표시됩니다. 추가 증명이 필요하지 않습니다.
  2. 소스 백포트 (CVE-2026-42945) - 패키지 버전은 1.25.5로 유지되므로 스캐너는 패치된 바이너리와 패치되지 않은 바이너리를 구분할 수 없습니다. 수정은 소스 출처, 빌드 시간 검증, 회귀 테스트를 통해 입증됩니다. VEX는 스캐너 계층 신호를 제공합니다.

동등성 상태

이 이미지의 nginx -V 구성 인수는 nginx:1.25-bookworm의 구성 인수와 일치합니다 (-ffile-prefix-map 빌드 경로를 정규화한 후 문자별로 비교; test/compat.py::test_nginx_version에서 확인). 테스트 스위트(make test)는 라이브 업스트림 이미지에 대해 이미지 메타데이터, 동적 모듈, 파일시스템 레이아웃, 엔트리포인트 동작, dpkg 패키징, HTTP 요청 처리를 포함한 89개의 어설션을 검증합니다.

업스트림과의 알려진 차이점 (동일한 것으로 검증되지 않음):

  • nginx -V의 built with OpenSSL X.X.X 줄은 빌더의 libssl-dev 버전을 반영하며, 이는 업스트림의 컴파일 타임 OpenSSL과 다를 수 있습니다.
  • 바이너리 콘텐츠는 바이트 단위로 동일하지 않습니다 (다른 컴파일 환경, 다른 툴체인 호출 타임스탬프).
  • 이미지 패키지 세트가 다릅니다 - 공식 이미지의 상속된 패키지 트리 대신 debian:bookworm-slim 베이스를 사용합니다.
  • 런타임 libssl3 버전은 북웜이 현재 제공하는 버전(작성 시점 기준 3.0.20)이며, 업스트림 이미지의 고정 버전이 아닙니다.

빠른 시작```bash

Build everything (builder → .deb → final image)

make image

Run automated compatibility tests

make test

Run CVE-2026-42945 regression test

make test-cve

Verify patch provenance (re-derives from upstream tarballs)

make verify-patch

Scan and demonstrate VEX

make scan

하나의 명령으로 빌드, 테스트, 스캔:```bash
make all

저장소 구조```

build/ Dockerfile.build Builder image (debian:bookworm-slim + compilation deps) build.sh Fetch → verify → patch → compile → package nginx generate-vex.sh Generate OpenVEX document for backported CVE verify-patch.sh Re-derive patch from upstream tarballs (audit tool) patches/ CVE-2026-42945.patch Backported one-line fix from nginx 1.30.1 CVE-2026-42945.provenance.json Machine-readable patch provenance and derivation metadata

test/ compat.py 89-assertion compatibility test suite (runs against live upstream) test_cve_2026_42945.py CVE-specific regression test (exercises vulnerable code path)

artifacts/ patch-attestation.json Build-time patch attestation (tracked) nginx_*.deb Compiled package (gitignored - rebuilt via make build-source) nginx Compiled binary (gitignored) Containerfile Final runtime image definition Makefile Orchestrates build → test → scan pipeline vex.json Generated OpenVEX v0.2.0 document baseline-trivy.txt Point-in-time Trivy scan of nginx:1.25-bookworm baseline-grype.txt Point-in-time Grype scan of nginx:1.25-bookworm fixed-trivy.txt Trivy scan of the fixed image fixed-grype.txt Grype scan of the fixed image (without VEX) fixed-grype-vex.txt Grype scan of the fixed image (with VEX applied)

---

## 빌드 과정

### 아키텍처```
debian:bookworm-slim (builder)
  └─ build.sh
       ├─ curl nginx-1.25.5.tar.gz (SHA256-verified)
       ├─ curl njs-0.8.4 from github.com/nginx/njs
       ├─ patch -p1 < CVE-2026-42945.patch
       ├─ ./configure (flags identical to upstream nginx -V)
       ├─ make: release binary, debug binary, 4 dynamic module families (×2 release/debug)
       ├─ make: NJS modules (×2 release/debug) + njs CLI binary
       └─ dpkg-deb → nginx_1.25.5-1~bookworm+echo1_<arch>.deb

debian:bookworm-slim (runtime)
  ├─ apt-get install runtime deps (libssl3 ≥ 3.0.14 enforced)
  ├─ dpkg -i nginx_*.deb
  └─ COPY --from=upstream /docker-entrypoint.sh + /docker-entrypoint.d/

Containerfile은 /etc/nginx를 업스트림에서 복사하지 않습니다. 모든 구성 파일은 .deb 안에 포함되어 있으며 dpkg의 conffile 메커니즘으로 추적됩니다. 이는 10-listen-on-ipv6-by-default.sh 진입점 스크립트에 필요하며, 이 스크립트는 dpkg-query를 사용하여 default.conf가 사용자에 의해 수정되었는지 감지합니다.

무결성 보장

  • 소스 tarball: 모든 소스 아카이브(nginx, NJS)는 추출 전에 하드코딩된 해시에 대해 SHA256으로 검증됩니다. 불일치 시 빌드가 중단됩니다.
  • 소스에서 빌드: 깨끗한 Debian 컨테이너 내부에서 ./configure && make를 실행합니다. 업스트림 바이너리나 apt install nginx는 사용하지 않습니다.
  • 컴파일 중 네트워크 접근 없음: 종속성은 빌더 Docker 이미지 레이어에 설치됩니다. build.sh는 고정된 소스 아카이브만 가져옵니다.

재현성

빌드는 대부분 재현 가능하지만 완전히 밀폐(hermetic)되지는 않습니다:

  • nginx 소스 버전과 SHA256은 추출 전에 고정 및 검증됩니다.
  • NJS 버전과 SHA256은 추출 전에 고정 및 검증됩니다.
  • 빌더 종속성은 Dockerfile.build에 열거되지만 버전이 고정되지는 않습니다.
  • Debian 런타임 패키지는 빌드 시점에 라이브 bookworm 저장소에서 확인되므로 빌드 간에 마이너 버전이 달라질 수 있습니다.

재현성을 개선하려면 기본 이미지 다이제스트를 고정하세요:```bash docker pull debian:bookworm-slim docker inspect debian:bookworm-slim --format='{{index .RepoDigests 0}}'

Then use: FROM debian:bookworm-slim@sha256:

---

## CVE 수정 세부 정보

### CVE-2024-6119 - OpenSSL 버전 업그레이드

| 필드                | 값                                                  |
| -------------------- | ---------------------------------------------------- |
| **구성 요소**        | OpenSSL / libssl3                                    |
| **심각도**         | 높음 (CVSS 7.5)                                      |
| **유형**             | X.509 이름 검사를 통한 서비스 거부                   |
| **기준 버전** | 3.0.11-1~deb12u2                                     |
| **수정 버전**    | 3.0.14-1~deb12u2 (또는 이후)                         |
| **당사 버전**      | 3.0.20-1~deb12u1                                     |
| **NVD**              | https://nvd.nist.gov/vuln/detail/CVE-2024-6119       |
| **권고**         | https://openssl-library.org/news/secadv/20240903.txt |

**수정 작동 방식:**

`.deb` 패키지는 `Depends: libssl3 (>= 3.0.14)`를 선언하므로,
`apt-get install`은 수정 사항이 포함된 OpenSSL 버전을 가져오도록 강제됩니다.
현재 Debian bookworm 저장소는 3.0.20을 제공하며, 이는 CVE-2024-6119 및
기준 버전의 다른 수많은 OpenSSL CVE(CVE-2024-2511, CVE-2024-5535,
CVE-2024-4741, CVE-2023-5678, CVE-2023-6129, CVE-2023-6237, CVE-2024-9143,
CVE-2025-15467, CVE-2025-69420)를 수정합니다.

**스캐너 동작:** Grype와 Trivy는 dpkg 데이터베이스에서 `libssl3 3.0.20`을 확인하고
3.0.20 ≥ 3.0.14임을 인식하므로 CVE-2024-6119가 더 이상 보고되지 않습니다.
VEX가 필요하지 않습니다. 버전 업그레이드만으로 충분히 명백합니다.

**검증:**```bash
grep "CVE-2024-6119" baseline-grype.txt  # present
grep "CVE-2024-6119" fixed-grype.txt     # absent

CVE-2026-42945 - 백포트된 패치

필드값
구성 요소nginx ngx_http_rewrite_module
심각도중간 (nginx.org 분류)
기준 버전nginx 1.25.5
수정 버전nginx 1.30.1 (2026-05-13 출시)
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-42945
권고https://my.f5.com/manage/s/article/K000161019
업스트림 변경 사항nginx 1.30.1 변경 사항: "재작성 모듈의 힙 메모리 버퍼 오버플로우"

취약점:

src/http/ngx_http_script.c에 있는 ngx_http_script_regex_end_code()는 재작성 정규식 결과를 처리할 때 e->is_args를 재설정하지 못했습니다. 이전 스크립트 엔진 작업에 의해 is_args가 설정된 경우, 리다이렉트/재작성 경로의 후속 버퍼 길이 계산이 잘못되어 제작된 요청 URI를 통해 공격자가 제어할 수 있는 크기의 힙 버퍼 오버플로우가 발생합니다.

수정 (한 줄):

--- a/src/http/ngx_http_script.c
+++ b/src/http/ngx_http_script.c
@@ -3176,6 +3176,7 @@ ngx_http_script_regex_end_code(ngx_http_request_t *r,
     }

     e->status = NGX_HTTP_MOVED_TEMPORARILY;
+    e->is_args = 0;
도구 다운로드