Apache Camel Docling 구성 요소의 명령('인수 삽입') 취약점에서 인수 구분 기호를 부적절하게 중립화합니다. Camel-docling 구성 요소는 DoclingProducer에서 인수 목록을 조합하고 이를 java.lang.ProcessBuilder를 통해 실행하여 외부 `docling` 명령줄 도구를 호출합니다. CamelDoclingCustomArguments 교환 헤더(List<String>)를 통해 제공된 사용자 정의 CLI 인수가 유효성 검사가 부족한 해당 인수 목록에 추가되었습니다. 원래 imple
Apache Camel Docling 구성 요소의 명령('인수 삽입') 취약점에서 인수 구분 기호를 부적절하게 중립화합니다.
Camel-docling 구성 요소는 DoclingProducer에서 인수 목록을 조합하고 이를 java.lang.ProcessBuilder를 통해 실행하여 외부 docling 명령줄 도구를 호출합니다. CamelDoclingCustomArguments 교환 헤더(List)를 통해 제공된 사용자 정의 CLI 인수는 검증이 충분하지 않은 인수 목록에 추가되었습니다. 원래 구현은 허용되지 않는 플래그의 거부 목록과 리터럴 ../ 시퀀스가 포함된 거부된 경로 값에만 의존했습니다. 결과적으로, 외부의 영향을 받은 데이터를 CamelDoclingCustomArguments 헤더(또는 호출을 빌드하는 데 사용되는 경로 포함 헤더)로 전달하는 Camel 경로는 생산자가 인식되지 않거나 의도하지 않은 docling CLI 플래그를 하위 프로세스에 전달하게 할 수 있으며 리터럴 ../ 검사에 의해 포착되지 않는 순회 시퀀스를 통해 의도된 디렉터리 외부에서 확인되는 경로 유사 인수 값을 제공할 수 있습니다. Camel 자체는 이러한 값에서 docling 호출을 구축하기 때문에 구성 요소가 이를 제한하고 약한 유효성 검사로 인해 외부 도구에 전달된 인수에 CLI 인수 삽입 및 디렉터리 탐색이 허용되었습니다. 호출은 ProcessBuilder의 목록 기반 형식을 사용하므로 쉘은 인수 값을 해석하지 않습니다. 셸 메타 문자를 통한 OS 명령 주입은 불가능했으며 수정 사항에 의해 추가된 메타 문자 거부는 심층 방어입니다.
이 문제는 Apache Camel: 4.15.0부터 4.18.3까지 영향을 미칩니다.
사용자는 CAMEL-23212 수정 사항이 포함된 릴리스로 업그레이드하는 것이 좋습니다. 메인라인에는 Apache Camel 4.19.0(및 4.20.0과 같은 이후 릴리스)의 수정 사항이 포함되어 있습니다. 4.18.x LTS 릴리스 스트림 사용자의 경우 4.18.3으로 업그레이드하세요. 수정 사항은 거부 목록을 인식된 docling CLI 플래그의 엄격한 허용 목록(인식되지 않는 플래그 거부 및 출력 디렉터리 플래그와 같은 생산자 관리 플래그 거부)으로 대체하고, 인수 값의 셸 메타 문자를 방어적으로 거부하고, 유효성을 검사하기 전에 Path.normalize()로 경로 유사 값을 정규화하여 리터럴 ../ 검사를 우회하는 순회 시퀀스가 감지되도록 합니다. 심층 방어를 위해 경로 작성자는 신뢰할 수 없는 메시지 콘텐츠를 CamelDoclingCustomArguments 헤더와 경로 포함 헤더에 매핑하지 않아야 하며, 신뢰할 수 없는 생산자로부터 도착하는 메시지에서 Camel 내부 헤더를 제거해야 합니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 91.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 91.00 |
VPI 공식 vpi-v1 기준