개요

Orkes Conductor 워크플로 플랫폼에 무인증 원격 코드 실행(RCE) 취약점인 CVE-2026-58138이 보고되었다. 영향 대상은 3.21.21부터 3.30.2 이전 버전(3.21.21 < 3.30.2)이다. 인증이 없는 원격 공격자가 Conductor API에 인라인 워크플로 정의를 제출하면, 정의에 포함된 스크립트가 GraalVM 기반 스크립트 평가기에서 통제 없이 실행되어 임의 OS 명령 실행으로 이어질 수 있다. VulnCheck는 이 취약점을 CVSS 9.3(critical), CWE-94(Improper Control of Generation of Code, 코드 주입)로 평가했고, 3.30.2 릴리스에서 스크립트 평가기 제한이 적용되어 수정되었다.
영향 범위
- Orkes Conductor(conductor-oss/conductor) 3.21.21부터 3.30.2 이전 버전(3.21.21 < 3.30.2). 3.21.21보다 이전 버전까지 동일한 취약점에 노출되는지는 확인되지 않았다.
CVSS V4 벡터(CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N)는 취약 요소의 기밀성·무결성·가용성 모두에 고(High) 영향을 준다. 즉 Conductor 서버 호스트에서 임의 OS 명령이 실행되면 해당 호스트에 대한 완전한 제어가 가능해지며, 워크플로 플랫폼을 통해 처리되는 업무·데이터·내부 서비스 접근 권한이 침해 대상이 된다.
운영 우선순위에 관해 조건적으로 보면, 무인증 네트워크 벡터(AV:N, PR:N)이므로 Conductor API가 인터넷 등 외부 네트워크에 직접 노출된 인스턴스가 있다면 가장 먼저 대응해야 하며, 인증 뒤 내부에서만 접근 가능한 인스턴스는 상대적 우선순위가 낮다. 이 판단은 CVSS 벡터에서 도출한 조건부 운영 판단이며, 실제 외부 노출 여부는 내부 네트워크 점검으로 확인해야 한다.
기술적 분석
취약점은 CWE-94(코드 주입)로, 외부가 제출한 스크립트가 스크립트 평가기에서 통제 없이 실행되는 구조가 원인이다. 공격 경로는 다음과 같다. 인증이 없는 원격 공격자가 Conductor API에 인라인 워크플로 정의를 제출하고, 이 정의에 포함된 스크립트가 GraalVM의 JS(graaljs) 평가기에서 실행되며, 결국 임의 OS 명령 실행으로 이어진다.
3.30.2 릴리스의 변경 사항이 이 구조를 뒷받침한다. v3.30.2 릴리스에는 graaljs 추가 제한과 js 평가기에서 일부 클래스 접근 거부, python 평가기에서 host 접근 거부가 포함되며, 특정 커밋도 js 평가기 클래스 접근 거부와 python 평가기 host 접근 거부를 명시한다. 이는 취약점이 이들 스크립트 평가기의 통제 미비에 있었다는 점을 뒷받침한다.
참고로 2025년 6월 30일 보고된 CVE-2025-26074에서도 Conductor OSS가 Nashorn JavaScript 엔진을 적절히 제한하지 않아 RCE가 발생한 이력이 있어, 스크립트 주입 벡터에 대한 반복적인 취약성이 있었다.
한계
- NVD 기술이 일부 잘려 있어, 인라인 워크플로 정의가 OS 명령 실행으로 이어지는 정확한 코드 단계는 벤더·CWE 수준(CWE-94, GraalVM 스크립트 평가기)에서만 확인되었다. 세부 코드 경로는 추가 확인이 필요하다.
- 영향 버전은 출처의 '3.21.21 before 3.30.2' 범위이며, 이보다 이전 버전의 해당 여부는 확인되지 않았다.
- 공개 PoC와 실제 악용 사례는 검색 결과에서 확인되지 않았으며, 이는 확인되지 않음이므로 없음을 보장하지 않는다.
- CISA KEV 등 공식 등재 목록에의 포함 여부는 확인되지 않았다(대응 기한 판단에 영향을 줄 수 있음).
대응 방안
즉시 조치
- 사용 중인 Conductor 버전을 확인하고, 3.21.21부터 3.30.2 이전 범위에 해당하면 해당 인스턴스를 우선 대상으로 지정한다. 3.21.21 이전 버전에 해당하는지 여부는 확인되지 않았으므로 해당 여부 판별은 공급사 확인이 필요하다.
- Conductor API의 외부 네트워크(인터넷) 노출 여부를 점검하고, 노출된 인스턴스는 패치 완료 전까지 접근을 제한하거나 인증을 거치는 네트워크/게이트웨이 뒤로 이끈다. 무인증 취약점이라 노출 차단이 효과적이다.
지속적 개선
- 3.30.2 이상으로 업그레이드(graaljs 추가 제한, js 평가기 클래스 접근 거부, python 평가기 host 접근 거부).
- 이전 스크립트 주입 RCE(CVE-2025-26074, Nashorn)의 적용 여부도 함께 점검해 스크립트 평가기에 대한 통제 수준을 종합적으로 확인한다.
참고자료
- NVD CVE-2026-58138 Orkes Conductor unauthenticated RCE
- Orkes Conductor 3.21.21 < 3.30.2 Unauthenticated RCE via GraalVM Script Evaluators
- Release v3.30.2 · conductor-oss/conductor
- Deny access to some classes in js evaluator, deny host access in python evaluator (87a7d96)
- CVE-2025-26074: Remote Code Execution in Conductor OSS via inline JavaScript Injection
함께 읽으면 좋은 글
- Perses 경계 취약점: 파일 시스템 경로 순회와 데이터소스 프록시 인가 누락
- TanStack npm 공급망 공격: CI 토큰 탈취와 GitHub 저장소 접근, 의존성 대응 점검
- SolarWinds Access Rights Manager 하드코딩 키로 미인증 RCE 발생 (CVE-2026-28326)
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!