flawopen.com/Incidents/papercut-patch-bypass-scan2fax-chain-october-2026
PaperCut 패치 우회: Scan2Fax에서 사전 인증 RCE까지
10월 9일 watchTowr는 PaperCut 중간 릴리스를 대상으로 한 새로운 인증 우회 및 Scan2Fax 체인을 공개했습니다. 패치 우회가 인증 전 경로를 인증 후 명령 실행 취약점까지 다시 연결한 과정을 보여 줍니다. PaperCut의 최종 수정 버전은 26.0.5/25.0.13입니다.[1], [2]
방문자의 출입증을 각 방에서 확인하지만 로비에서는 경로의 첫 번째 방만 확인하는 건물을 떠올려 보세요. 열린 방을 통과하는 지름길로 제한된 책상까지 가면 그곳에서 출입증을 다시 확인하지 않을 수 있습니다. PaperCut의 패치 과정에서는 이런 경로를 여러 개 막아야 했습니다. 최종 수정은 폼 자체와 Scan-to-Fax가 사용하는 파일 경로를 보호합니다.[1]
핵심 개념 및 용어
패치 우회- 수정이 처음 보고된 경로만 막은 뒤에도 다른 경로로 동일한 보호 작업에 도달하는 문제입니다. 원래 패치가 전혀 적용되지 않았다는 뜻이 아니라 경계에 새 결함이 있음을 나타냅니다.[1]
인증 전 체인- 한 결함이 일반적인 로그인 검사를 우회하고 다른 결함이 명령 실행 같은 영향을 제공하는 연속 과정입니다. 각 단계의 메커니즘을 구분해 정확히 설명해야 합니다.[1]
CVE-2026-82077- PaperCut Scan-to-Fax 취약점은 경로 순회 문제로, 인증된 관리자가 호스트에서 명령을 실행할 수 있습니다. PaperCut은 26.0.5와 25.0.13에서 수정했으며, watchTowr는 중간 버전의 별도 권한 우회와 연결되는 방식을 보였습니다.[2], [3], [4], [1]
WT-2026-0143- 10월 9일 공개된 인증 패치 우회에 대한 watchTowr 식별자입니다. PaperCut 공개 공지에는 별도 CVE가 없습니다. 긴급 빌드 26.0.4-PO 76530에서 수정됐습니다.[1]
프레임워크 매핑
릴리스 상태: PaperCut의 두 공격 체인을 구분하세요
| PaperCut 릴리스 | 출처에서 확인된 내용 | 방어 조치 |
|---|---|---|
| 26.0.3 | watchTowr는 이전에 실제 공격에서 관찰된 CVE-2026-81578 + CVE-2026-82078 체인이 이 버전과 관련 있다고 설명합니다. | PaperCut 긴급 공지를 따르세요. 이는 이전에 악용된 체인이며 10월 연구와는 별개입니다. |
| 26.0.4 | watchTowr는 이 버전을 분석하면서 별도의 패치 우회를 발견했습니다. | 중간 패치를 최종 상태로 간주하지 말고 공급업체가 지정한 수정 버전을 따르세요. |
| 26.0.4-PO build 76508 | watchTowr는 이 버전에서 WT-2026-0143 + CVE-2026-82077을 재현했습니다. 이는 연구 시연이며 고객 대상 악용의 증거는 아닙니다. | 공급업체가 수정한 버전으로 업그레이드하세요. 이전 긴급 수정이 포함됐다는 이유만으로 안전하다고 추정하지 마세요. |
| 26.0.4-PO build 76530 | watchTowr에 따르면 이 버전에서 WT-2026-0143이 수정됐고 CVE-2026-82077은 이후 버전에서 수정됐습니다. | CVE-2026-82077의 최종 수정 버전까지 업그레이드하세요. 이 중간 우회 수정만으로는 부족합니다. |
| 26.0.5 / 25.0.13 이상 | PaperCut은 이 버전들을 CVE-2026-82077 수정 버전으로 제시합니다. | 현재 지원되는 버전으로 업그레이드하고 설치된 브랜치와 빌드를 확인하세요. |
| 24.1.10 유지보수 릴리스 | PaperCut의 8월 공지는 24.1.10을 Emergency Patches 1–3을 대체하는 유지보수 릴리스로 나열합니다. | 이는 8월 공지의 수정 사항만 확인하며 CVE-2026-82077 상태를 입증하지 않습니다. |
24.x 브랜치: CVE-2026-82077 | PaperCut의 9월 공지는 26.0.5와 25.0.13(25.x)을 수정 버전으로 제시하지만 24.x 브랜치는 명시하지 않습니다. | 24.x에서 이 CVE의 상태를 추정하지 말고 해당 브랜치에 대한 PaperCut의 최신 지침을 확인하세요. |
사고 타임라인
단계별 공격 실행 흐름
경로 수준의 권한 검사가 중첩된 대상을 놓칩니다
watchTowr는 PaperCut의 레거시 Tapestry 라우팅을 설명합니다. 요청에서 루트 페이지와 이어지는 다른 페이지 또는 폼을 지정할 수 있었습니다. 기존 권한 검사는 대상 폼 자체의 권한 경계를 일관되게 적용하지 않았습니다.[1]
패치 우회로 보호된 폼에 도달합니다
26.0.4-PO 76508 체인은 WT-2026-0143을 이용해 대상 폼 검사를 호출하지 않는 페이지를 거쳐 설정 기능에 접근했습니다. 이는 권한 경계에 대한 설명이며 경로나 요청을 재현하지 않습니다.[1]
소스 코드 비교: 취약한 구현 vs 보안 패치
이 일반 Java 예시는 두 가지 별도 통제를 보여 줍니다. 권한이 필요한 작업 자체를 승인하고, 서버가 관리하는 커넥터 맵에서 실행 파일을 선택한 뒤 정규 경로를 확인합니다. PaperCut 소스 코드나 공급업체 패치가 아닙니다. 운영 코드에는 인수 검증과 프로세스 권한 제한도 필요하며 수정된 PaperCut 버전을 사용해야 합니다. 경로 검사만으로 페이지 라우팅의 권한 우회를 해결할 수 없습니다.
Path executable = faxDirectory.resolve(clientConnectorName).normalize();
// 경로 수준의 검사만으로 이 작업 자체에 대한 권한 확인을 대신할 수 없습니다.
new ProcessBuilder(executable.toString(), faxArguments).start();
if (!principal.canAdministerFax()) {
throw new SecurityException("Fax administration is required");
}
Path root = faxDirectory.toRealPath();
Path executable = approvedConnectors.get(connectorId); // Server-owned allowlist.
if (executable == null) {
throw new IllegalArgumentException("Unknown connector");
}
Path resolved = executable.toRealPath();
if (!resolved.startsWith(root) || !Files.isExecutable(resolved)) {
throw new SecurityException("Connector is outside the approved directory");
}
new ProcessBuilder(resolved.toString(), validatedArguments).start();
엔지니어링 및 시스템 보안 강화 체크리스트
- ✓PaperCut NG/MF를 26.0.5 이상으로 업데이트하거나 25.x 분기에서는 25.0.13 이상으로 업데이트합니다. 중간 빌드 76508을 최종 수정으로 보지 말고 PaperCut 보안 공지에서 최종 수정 버전을 확인하세요.[2], [4]
- ✓취약하거나 중간 버전이 외부에 노출됐다면 PaperCut의 최신 보안 공지와 사고 대응 지침을 따르세요. 10월 연구만으로 WT-2026-0143/
CVE-2026-82077침해나 실시간 악용을 추론하지 마세요.[2] - ✓각 대상 페이지와 폼의 작업 경계에서 권한을 확인하세요. 직접 및 중첩 라우팅 테스트를 추가해 허용된 루트 페이지가 대상 자체의 권한 검사 없이 보호된 대상으로 이어지지 않는지 검증하세요.[1]
- ✓요청에서 받은 커넥터 이름으로 실행 파일 경로를 만들지 마세요. 안정된 ID를 서버 설정 실행 파일에 매핑하고 경로를 정규화하며 승인 디렉터리 밖의 실행 파일은 거부하세요.[1], [2]
- ✓코드 검토와 릴리스 노트에서 인증 우회와 명령 실행 수정을 별도 통제로 다루고 프레임워크 또는 라우팅 변경 뒤 두 항목의 회귀 테스트를 실행하세요.[1]
- ✓보안 공지를 읽을 때 이전에 실제 악용된
CVE-2026-81578/CVE-2026-82078체인과 이후 패치 우회 연구를 구분하세요. 관측된 악용, 연구자 시연, 수정 버전 주장은 각각 해당 출처에 귀속하세요.[1], [2]