기타 · 2026년 7월 11일 ★★★

CodeQL 2.26.0, AI 시스템 프롬프트로 새는 사용자 입력을 정적 분석으로 잡아내요

깃허브(GitHub) 코드 스캐닝의 정적 분석 엔진 CodeQL 2.26.0에 AI 프롬프트 인젝션 탐지 쿼리 js/system-prompt-injection이 추가됐어요. 믿을 수 없는 사용자 입력이 AI 모델의 시스템 프롬프트나 도구 설명(tool description)으로 흘러들어가 모델 동작을 조작당하는 경로를, 자바스크립트·타입스크립트 코드에서 데이터 흐름으로 찾아내요. OpenAI(Sora 영상 생성·Realtime 세션 지시문), Anthropic(레거시 문장 완성 프롬프트), 구글 GenAI(캐시 콘텐츠·시스템 지시문) 등 주요 SDK의 프롬프트 입력 지점을 새 취약 지점(sink)으로 넓혔고, 함께 코틀린(Kotlin) 2.4.0 지원도 들어왔어요.

용어 풀이
CodeQL
코드를 데이터베이스처럼 질의(query)해 취약점을 찾아내는 깃허브의 정적 분석 엔진.
프롬프트 인젝션(prompt injection)
AI 모델에 넣는 지시문에 악의적 입력을 섞어 모델 동작을 공격자 의도대로 바꾸는 공격.
시스템 프롬프트(system prompt)
AI 모델의 역할·규칙을 정하는 최상위 지시문. 보통 개발자가 고정해 두는 신뢰 영역.
SAST
소스 코드를 실행하지 않고 정적으로 분석해 보안 결함을 찾는 기법(Static Application Security Testing).
sink(취약 지점)
오염된 데이터가 도달하면 취약점이 되는 코드 지점. 여기서는 AI SDK의 프롬프트 입력 인자.
운영자 인사이트

AI 기능을 코드에 붙이는 순간 '사용자 입력이 시스템 프롬프트로 새는' 새 취약점이 생기는데, 이제 코드를 돌리지 않고 데이터 흐름만으로 잡아 CI 보안 검사에 자연스럽게 넣을 수 있게 된 점이 핵심이에요.

여러 관점으로 보기
  • 공식 발표 CodeQL 2.26.0의 js/system-prompt-injection 쿼리 추가와 OpenAI·Anthropic·구글 GenAI 프롬프트 인젝션 취약 지점 확장을 알리는 공식 체인지로그예요. GitHub
  • 상세 변경 로그 코틀린 2.4.0 지원과 쿼리별 변경 내역, 프롬프트 인젝션 sink 재분류까지 담은 CodeQL 공식 버전별 변경 로그예요. GitHub
  • 쿼리 상세·대응법 이 쿼리가 무엇을 잡는지(사용자 입력이 시스템 프롬프트·도구 설명으로 흘러드는 경로), 위험(제약 우회·민감 정보 유출), 권장 대응(역할 분리·허용 목록·고정 설명)을 설명해요. CWE-1427, 보안 심각도 7.8이에요. GitHub

원본 보기 (rss:github-changelog)