원문 캡처 · github.com
원문 캡처 · github.com

Qbix proxy v1.0.0은 웹 서버와 PHP-FPM 사이에서 HTTP 요청을 파싱한 뒤 다시 직렬화하는 보안 프록시다. 릴리스 설명에 따르면 PHP 파서에 공격자가 조작한 바이트가 전달되지 않도록 해 PHP 파서 취약점을 완화한다.

릴리스는 CVE-2026-109618과 CVE-2026-109619(‘php2shell’)이 PHP 5.4 이후 모든 버전에 영향을 주는 멀티파트 파서 및 session.upload_progress 처리기의 원격 코드 실행 취약점이라고 설명한다. 패치는 PHP 8.2 이상에만 제공될 예정이라고 밝히며, Qbix proxy는 요청 본문을 다시 직렬화해 이 취약점과 향후 파서 취약점을 완화한다고 주장한다. 서명이나 갱신해야 하는 규칙은 사용하지 않는다.

이 버전에는 콘텐츠 유형과 메서드 검사, 멀티파트 및 URL 인코딩 본문의 재직렬화, JSON 깊이·크기 검사, 헤더 정리를 포함한 6단계 검증 파이프라인이 들어갔다. 멀티파트 본문은 파싱과 검증을 거친 뒤 /dev/urandom에서 생성한 새 경계값으로 재직렬화한다. 중복 Content-Length, Content-Length와 Transfer-Encoding의 혼용, 단독 CR/LF는 거부한다. 멀티파트 필드명과 파일명에 큰따옴표나 백슬래시가 있어도 거부하며, FastCGI 응답 크기는 백엔드 메모리 고갈을 막기 위해 64MiB로 제한한다.

백엔드별로 허용 메서드와 콘텐츠 유형, 본문 크기, 업로드 한도를 설정할 수 있다. 프로메테우스 지표는 /Q/metrics, 상태 확인은 /Q/health에서 제공한다.

배포 안내는 nginx, Apache, Caddy용으로 제공된다. Qbix PHP Webserver를 사용하면 요청 정리가 이미 포함돼 별도의 Qbix proxy가 필요하지 않다.

릴리스에는 의존성이 없는 약 160KB의 정적 Linux 바이너리, Linux·macOS·Windows·FreeBSD에서 실행되는 Cosmopolitan APE 바이너리, 두 바이너리의 SHA256 체크섬이 포함됐다. 소스에서 빌드하는 명령은 다음과 같다.

sh
sudo apt install musl-tools
make static # produces build/qbixproxy-static (~160KB)