
algertc/alpr-dashboard를 위한 런타임 패치: 비동기 로거 수정 및 CVE-2025-29927 nginx 완화
algertc/alpr-dashboard Docker 프로젝트를 위한 두 가지 드롭인 패치입니다. 두 패치 모두 상위 이미지를 수정하거나 재빌드하지 않고 배포 가능합니다.
logger-fix/ — 비동기 로거 + 정리 스로틀내장된 동기식 로그 전송(모든 로그 호출 시 전체 파일 읽기 + 다시 쓰기)을 호출당 appendFileSync 기록기와 1분당 한 번 지연된 트림으로 대체합니다. 또한 POST당 이미지 정리 스캔의 속도를 제한합니다.
측정된 영향 (130 KB base64 이미지 페이로드, 실제 Blue Iris 알림과 일치): 원래 서버를 응답 불능 상태로 만든 지속적인 번호판 판독 속도(테스트 기간당 60개 POST 중 0개 완료)가 이제 CPU 변동 없이 전체 처리량으로 실행됩니다.
전체 표면 플롯 및 원시 데이터는 logger-fix/perf/에 있습니다.
middleware-exploit-mitigation/ — CVE-2025-29927 nginx 오버레이제공된 이미지는 Next.js 15.0.3을 사용하며, 이는 CVE-2025-29927 (CVSS 9.1, x-middleware-subrequest 헤더를 통한 인증 우회)에 취약합니다. Next.js >= 15.2.3에서 상위에서 수정되었지만, 상위 이미지를 업데이트하지 않고는 패치할 수 없습니다.
이 패치는 앱 앞에 nginx:alpine 사이드카를 배치하여 모든 프록시 요청에서 우회 헤더를 제거합니다. 앱 변경도, 이미지 재빌드도 필요 없습니다.
global.__loggerInitialized) 및 fileStorage.cleanupOldFiles의 fs/promises.readdir 사용에 의존합니다. 현재 logger.js 및 스토리지 코드에 대해 작동하지만 "올바른" 수정은 아닙니다. 올바른 수정은 상위 코드에서 LimitedLineTransport를 비차단 구현으로 교체하는 것입니다. 이 패치는 그때까지 안전하게 실행할 수 있는 방법입니다.두 패치 모두 설치와 되돌리기가 쉬우며, 상위 릴리스와 독립적입니다.
2026-04 기준 algertc/alpr-dashboard:latest에서 테스트되었습니다. 안정성을 위해 알려진 좋은 이미지 태그를 고정하세요. 특히 로거 패치는 상위 변경으로 인해 구현 세부 사항이 변경될 수 있습니다.
MIT — LICENSE 참조.