Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-55511 — Yamcs 임무 제어 시스템에서 Yarch SQL 큰따옴표 식별자 내 Java 구문 삽입을 통한 원격 코드 실행 (RCE)Yamcs 임무 제어 시스템에서 Yarch SQL 큰따옴표 식별자 내 Java 구문 삽입을 통한 원격 코드 실행 (RCE) | Kitploit
도구/GitHubGitHub/junfuture1103/cve-2026-55511
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubjunfuture1103/cve-2026-55511

CVE-2026-55511

Yamcs 임무 제어 시스템에서 Yarch SQL 큰따옴표 식별자 내 Java 구문 삽입을 통한 원격 코드 실행 (RCE)Yamcs 임무 제어 시스템에서 Yarch SQL 큰따옴표 식별자 내 Java 구문 삽입을 통한 원격 코드 실행 (RCE)

저장소 보기
111개월 전아직 검토되지 않음
웹사이트

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-55511: Yamcs StreamSQL 인증된 RCE

비무장화된 개념 증명 및 기술 문서 - Yamcs StreamSQL 집계 표현식 컴파일러의 인증된 Java 코드 인젝션 취약점(CVE-2026-55511)에 대한 내용입니다.

필드값
제품Yamcs (org.yamcs:yamcs-core)
권고GHSA-3g44-3m7x-cgg2
약점CWE-94: 코드 생성의 부적절한 제어
심각도심각, CVSS 3.1: 9.1
벡터CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
필요 권한SystemPrivilege.ControlArchiving
수정된 릴리스Yamcs 5.13.2 및 5.12.8
메인라인 패치b65a3d78178ba99a58b753feda6ecc3b5a694f13

개요

Yamcs는 StreamSQL 객체에 대해 큰따옴표로 묶인 이름을 허용하며, 영향을 받는 릴리스에서는 해당 이름 안에 거의 모든 문자를 허용합니다. sum(...)와 같은 집계 표현식은 열 이름을 사용하여 동적으로 Java 소스를 구성하고 Janino SimpleCompiler로 해당 소스를 컴파일합니다.

취약한 코드는 열 이름을 생성된 Java 식별자에 배치하기 전에 최소한의 이름 검사만 적용합니다. 따라서 ControlArchiving 권한이 있는 인증된 사용자는 조작된 큰따옴표 열 이름을 생성하고, POST /api/archive/{instance}:executeSql을 통해 집계 컴파일러에 도달하여 Yamcs 서버 JVM 내에서 공격자가 영향을 미친 Java를 실행할 수 있습니다.

이는 의도된 Yamcs 인가 경계를 넘어섭니다. ControlArchiving은 아카이브, 테이블 및 스트림 관리를 허용하지만 서버에서 임의의 Java 실행을 의도적으로 부여하지는 않습니다.

영향을 받는 버전

릴리스 라인영향수정
5.13.x5.13.1 및 이전5.13.2
5.12.x5.12.7 및 이전5.12.8

Yamcs 5.13.2, 5.12.8 또는 이후 지원 릴리스로 업그레이드하십시오.

기술적 세부 사항

취약한 데이터 흐름은 다음과 같습니다.

root@kitploit:~
POST /api/archive/{instance}:executeSql
  -> TableApi.executeSql
  -> Yarch StreamSQL 파서
  -> 큰따옴표 객체 이름
  -> SelectExpression 집계 바인딩
  -> SumExpression.aggregateFillCode_newData
  -> Expression.fillCode_InputDefVars
  -> CompilableAggregateExpression.getCompiledAggregate
  -> Janino SimpleCompiler.cook
  -> Yamcs JVM에서 공격자가 영향을 미친 Java 실행

세 가지 조건이 결합되어 문제가 발생합니다.

  1. 취약한 S_DOUBLE_QUOTED_IDENTIFIER 문법은 CR, LF 및 "를 제외한 모든 문자를 허용합니다.
  2. Expression.fillCode_InputDefVars는 열 이름에서 Java 변수 이름을 파생합니다. sanitizeName 헬퍼는 /와 -만 대체합니다.
  3. 생성된 집계 클래스는 제한적인 표현식 샌드박스 없이 Janino로 컴파일 및 로드됩니다.

이로 인해 생성된 newData(Tuple) 메서드에서 세미콜론, 공백, 괄호, 할당 연산자, 점과 같은 Java 구문 문자를 사용할 수 있습니다. 단순 표현식 경로와 달리 집계 메서드는 주입된 문장을 컴파일하고 실행할 수 있는 도달 가능한 문장 컨텍스트를 제공합니다.

전제 조건 및 영향

악용하려면 SystemPrivilege.ControlArchiving을 보유한 인증된 계정이 필요합니다. 해당 권한이 없는 계정은 TableApi.executeSql 인가 검사에서 거부됩니다.

성공적인 악용은 Yamcs 서비스 프로세스의 권한으로 Java를 실행합니다. 배포 격리 방식에 따라 미션 데이터 및 호스트 환경의 기밀성, 무결성, 가용성에 영향을 미칠 수 있습니다. 이 문제는 인증되지 않은 RCE가 아니며, Yamcs 프로세스의 운영 체제 또는 컨테이너 권한을 자체적으로 상승시키지 않습니다.

개념 증명

포함된 poc.py는 의도적으로 무장화되지 않았습니다.

  • 실제 Yamcs 서버에 연결하지 않습니다.
  • 운영 체제 명령을 실행하지 않습니다.
  • 로컬 Yamcs 체크아웃에서 관련 취약한 소스 체인을 확인합니다.
  • 집계 코드 생성 패턴의 작은 Java 모델을 생성합니다.
  • 무해한 JVM 속성 마커만 설정합니다.

요구 사항

  • Python 3.9+
  • 로컬 Yamcs 소스 체크아웃
  • 선택 사항: JDK (javac 및 java) - 무해한 마커 테스트용

실행

root@kitploit:~
cd /path/to/yamcs
python3 /path/to/poc.py \
  --json /tmp/evidence.json \
  --log /tmp/crash_evidence.log \
  --expect-crash

예상 지표:

root@kitploit:~
source_chain_confirmed=true
generated_source_injection_present=true
marker_executed=true

증거

  • evidence/evidence.json: 구조화된 소스 체인 및 Java 모델 결과
  • evidence/crash_evidence.log: 간결한 검증 로그

포함된 증거는 Yamcs 소스 커밋 98a05e95461207c143e4297ec4bb1b5a76e9cb19에 대해 생성되었습니다. 취약한 소스 체인, 생성된 소스 인젝션, 무해한 마커 실행을 확인합니다.

공식 패치

업스트림 수정 사항의 제목은 "Avoid RCE through double-quoted identifiers"입니다.

  • 메인라인 / 5.13.x: b65a3d78178ba99a58b753feda6ecc3b5a694f13, 5.13.2에서 릴리스
  • 5.12.x 백포트: 8c1070b12c0a6c003903325cb2a1013347e2dbde, 5.12.8에서 릴리스

핵심 변경 사항은 큰따옴표 식별자를 거의 제한 없는 문자 집합에서

root@kitploit:~
< S_DOUBLE_QUOTED_IDENTIFIER: "\"" (~["\n","\r","\""])* "\"" >

허용 목록(문자, 숫자, $, _, #, .)으로 제한합니다.

root@kitploit:~
< S_DOUBLE_QUOTED_IDENTIFIER: "\"" (<LETTER> | <DIGIT> | <SPECIAL_CHARS>)+ "\"" >

이를 통해 보고된 인젝션에 필요한 문장 구분 및 표현식 구성 문자를 이름이 Java 코드 생성에 도달하기 전에 거부합니다. 패치는 생성된 파서 파일, 문서 및 관련 테스트도 업데이트합니다.

이 제한은 공백이나 허용 목록에 없는 구두점을 포함하는 기존의 큰따옴표 객체 이름에 영향을 미칠 수 있습니다. 업그레이드 또는 백포트 전에 StreamSQL 스키마와 자동화를 검토하십시오.

CVE-2026-44632와의 차이점

CVE-2026-55511은 CVE-2026-44632 / GHSA-524g-x36v-9wm6와 다른 진입점입니다. CVE-2026-44632는 JavaExprAlgorithmExecutionFactory와 관련되며, 미션 데이터베이스 알고리즘 재정의 기능을 통해 접근 가능하고 ChangeMissionDatabase에 의해 제어됩니다.

이 문제는 org.yamcs.yarch.streamsql에 있으며, executeSql을 통해 접근 가능하고 ControlArchiving에 의해 제어됩니다. 이전 5.13.0 / 5.12.7 알고리즘 경로 수정 사항은 StreamSQL 컴파일러나 큰따옴표 식별자 처리를 수정하지 않았습니다.

추가 문서

  • VULNERABILITY_REPORT.md: 확장된 취약점 보고서
  • PATCH_ANALYSIS.md: 상세한 업스트림 패치 분석 및 호환성 참고 사항

참조

  • 공식 Yamcs 보안 권고: GHSA-3g44-3m7x-cgg2
  • 공식 메인라인 수정 커밋
  • 공식 5.12.x 수정 커밋

이 자료는 귀하가 소유하거나 명시적으로 테스트할 권한이 있는 시스템에서만 사용하십시오.

도구 다운로드