인공지능 개발자들은 인공지능이 만드는 환각, 헛소리를 제거하기 위해 많은 노력을 기울였다. 미국의 인공지능 규제에 대해서 인간의 창의성이 무엇인지 보여줬던 Kimi K3의 환각률은 약 51%로 알려져 있다. 이는 독립적인 AI 성능 평가 기관인 Artificial Analysis의 평가 결과가 놀라움을 안겨줬다.
환각률, 성능과인공지능 개발자들은 인공지능이 만드는 환각, 헛소리를 제거하기 위해 많은 노력을 기울였다. 미국의 인공지능 규제에 대해서 인간의 창의성이 무엇인지 보여줬던 Kimi K3의 환각률은 약 51%로 알려져 있다. 이는 독립적인 AI 성능 평가 기관인 Artificial Analysis의 평가 결과가 놀라움을 안겨줬다.
환각률, 성능과의 트레이드오프?
이전 모델 대비 상승: Kimi K3의 환각률(51%)은 이전 버전인 K2.6의 환각률(39%)보다 12%포인트 상승했다.
성능과의 관계: 환각률이 상승했지만, 정확도 또한 33%에서 46%로 함께 상승했다. 이는 모델이 더 많은 질문에 정답을 맞히는 동시에, 틀린 답변을 더 자신감 있게 생성하는 비율도 늘어났다는 의미이다.
핵심은 '트레이드오프': 전문가들은 이를 성능 향상과 신뢰성 사이의 트레이드오프(Trade-off)로 분석하고 있다는 것이다. 즉, 코딩 등 특정 분야에서 뛰어난 성능을 보이는 대신, 사실에 기반한 답변이 필요한 작업에서는 환각 리스크를 더욱 신중히 고려해야 한다는 것이다.
알아두면 좋은 점
Kimi K3의 강점: Kimi K3는 Frontend Code Arena 1위를 기록하는 등 코딩 분야에서 매우 뛰어난 성능을 보여주는 모델이다.
의미: 환각률 51%는 생성된 답변 2개 중 약 1개가 사실이 아닌 정보일 가능성이 있음을 시사하고 있다. 따라서 사실 확인이 중요한 업무에 활용할 때는 결과를 반드시 검증해야 한다는 의미이다.
인간의 기억의 오류 (잘못된 기억, False Memory)
인간의 기억은 생각보다 훨씬 더 유동적이고 왜곡되기 쉽다고 한다. 고의적으로 인간의 기억, 상식을 편향을 만들 수 있다는 연구 결과가 있다.
단기 기억: 불과 0.5초 만에 약 20%의 사람들이 잘못된 기억을 형성했고, 3초 후에는 이 비율이 30%까지 증가했고 한다.
장기 기억: 잘못된 정보에 노출되었을 때 '거짓 기억'을 형성하는 비율은 연구에 따라 큰 차이를 보이고 있다고 한다.
지각과 판단의 오류 지각 오류: 실험실 환경에서 물체를 인식하거나 판단할 때 발생하는 오류율은 2%에서 8% 사이로 나타났습니다.
일상적 인지 오류: 한국 국민을 대상으로 한 조사에서는 10명 중 9명(90.9%) 이 '선택적 추상화'나 '이분법적 사고'와 같은 인지적 오류 습관을 가진 것으로 나타났다고 한다. 이는 일상적인 사고 과정에서 매우 흔한 현상임을 시사하고 있다.
결론적으로, 인간의 정보 오류 및 착각 확률은 매우 상황 의존적이라는 것이다. 어떤 순간에는 2%의 낮은 오류율을 보이다가, 다른 상황에서는 90%가 넘는 인구가 특정 인지적 오류를 범할 수 있다는 것이다. 이는 우리의 인지 시스템이 완벽하지 않으며, 오류가 특정 조건에서 얼마든지 발생할 수 있음을 보여주고 있다.
인공지능의 환각은 인간의 지각 오류, 인지 오류와 구조적으로 비슷할지도 모른다는 생각이 요즘 나는 들고 있다. 인간의 뇌는 인간의 인지, 기억은 편한대로 배경 상황을 이해하는 쪽으로 오류로 저장되고 있고 자기 합리화하고 있는 것이다.
인공지능의 환각은 보안 분야에서 큰 사고와 병목, 분석 마비를 만들었다.
존재하지 않는 함수에 CVSS 9.8이 붙었다
2026년 7월 27일, programmervuln/cveadvisory-라는 신규 GitHub 저장소에서 SQLite 취약점 어드바이저리 묶음이 공개됐다. NVD는 이를 신속히 Critical로 등재했고, CISA의 ADP(Authorized Data Publisher)도 동의했다. Red Hat은 CVE-2026-51302에 초기 CVSS 10.0을 부여했다.
사흘 뒤 JFrog 시큐리티 리서치의 Afek Berger가 검증 결과를 내놨다. 결론은 허무했다. 거의 전부가 존재하지 않는 취약점이었다.
같은 계정이 게시한 55건의 어드바이저리를 감사한 결과, 54건이 완전한 조작이었다. 나머지 1건만이 실제 버그를 담고 있었으나 그 역시 검증되지 않은 CVE 메타데이터로 포장돼 있었다. CVE-2026-51302의 Red Hat 점수는 이후 7.6 High로 하향 조정됐다.
이 사건이 중요한 이유는 SQLite가 무사했다는 데 있지 않다. 취약점 정보 생태계 전체가 자동 검증 없이 신뢰를 상향 전달하는 구조라는 사실이 실증됐다는 데 있다.
검증은 이렇게 무너졌다
JFrog의 검증 방법론은 교과서적이다. 공식 sqlite/sqlite 저장소를 클론해 해당 태그(3.41.0, 3.51.2, 3.51.3)를 체크아웃하고, 격리된 Docker 컨테이너에서 공식 릴리스를 직접 컴파일한 뒤, AddressSanitizer를 붙인 바이너리에 어드바이저리의 PoC SQL을 그대로 투입했다. 그리고 NVD와 GHSA 피드의 CPE 패턴과 메타데이터를 교차 감사했다.
결과는 다음과 같다.
| CVE | 주장된 결함 | CVSS | 감사 결과 |
|---|---|---|---|
| CVE-2026-51302 | exprComputeOperands() UAF |
9.8 Critical | 해당 함수가 3.41에 존재하지 않음. 2025년 중반 커밋으로 추가된 함수 |
| CVE-2026-51303 | ExprListDelete() 역참조 UAF |
9.8 Critical | 3.51.2→3.51.3 diff에 src/expr.c 변경 전무. 패치 자체가 허구 |
| CVE-2026-51300 | sqlite3ExprDelete() UAF |
9.1 Critical | 인용된 라인 1012·1026은 각각 주석과 메모리 할당 호출 |
| CVE-2026-51297 | jsonBlobEdit() UAF |
8.8 High | 해당 함수는 JSONB 구현 이후 도입. 대상 버전에 부재 |
| CVE-2026-51296 | jsonRemoveFunc UAF |
7.5 High | 3555·3575행 인용. 3.41.0의 json.c는 총 2706행 |
| CVE-2026-51304 | pOrderBy->nExpr post-free |
7.5 High | 인자 1개 시그니처는 존재하지 않음. 실제로는 db 포인터 필요 |
주목할 것은 오류의 성격이다. 파일 길이를 넘어선 행 번호, 미래 버전에서 도입된 함수를 과거 버전에서 호출, 존재하지 않는 커밋에 대한 "수정됨" 표기, 인자 개수가 틀린 함수 시그니처. 이것은 인간 연구자가 실수로 만드는 오류 패턴이 아니다. 코드베이스를 읽지 않고 그럴듯한 코드베이스를 상상한 결과물의 지문이다.
JFrog가 어드바이저리를 하나로 합쳐 GPTZero에 넣자 AI 생성 경고가 떴다. 그러나 이건 부차적 증거다. 결정적 증거는 컴파일러와 ASan이었다. PoC들은 크래시를 내지 않았거나, 애초에 파서 단계에서 실패하는 잘못된 SQL이었다.
구조적 실패 - 세 겹의 안전망이 동시에 사라졌다
이 어드바이저리들이 GHSA까지 도달한 것은 사고가 아니라 설계된 결과다.
첫째, 입구에 신원 검증이 없다. MITRE의 공개 제출 폼은 사실상 누구나 취약점 설명을 제출하고 CVSS 점수를 제안할 수 있게 돼 있다. 파이프라인의 어느 단계에서도 PoC 제출이나 버그 재현이 요구되지 않는다.
둘째, 중간 검증층이 2024년 2월에 무너졌다. 과거 NIST는 유입되는 CVE를 보안 전문가가 수작업으로 분석·검증·보강하는 신뢰할 만한 안전망이었다. AI로 인한 신고 급증에 밀려 NVD는 심층 분석을 사실상 중단했고, CISA와 다른 ADP들이 자체 보강으로 메우려 했으나 파이프라인은 파편화됐다.
셋째, 2026년 4월 15일 NIST는 이를 정책으로 공식화했다. CVE 제출은 2020년에서 2025년 사이 263% 증가했다. NIST는 2025년 약 4만 2천 건을 보강했고 이는 역대 최대치보다 45% 많은 수치였으나 여전히 부족했다. 2026년 1분기 제출은 전년 동기 대비 약 3분의 1 더 늘었다.
그래서 NIST는 리스크 기반 선별로 전환했다. CISA KEV 등재 취약점, 연방정부 사용 소프트웨어, EO 14028 정의 핵심 소프트웨어만 우선 보강한다. 나머지는 "Lowest Priority — 즉시 보강 대상 아님"으로 분류된다. 2026년 3월 1일 이전 미보강 백로그 약 2만 9천 건은 "Not Scheduled"로 이관됐다.
FIRST는 2026년 추가 5만 건을 전망했고, Cisco의 Jerry Gamblin은 연말 기준 70,135건을 예측했다. 검증 인력은 선형으로 증가하는데, 제출량은 LLM으로 인해 생성 비용이 0에 수렴하는 도구를 만나 지수적으로 증가한다.
신뢰 세탁(Trust Laundering)의 경로
이 사건의 본질은 "가짜 정보가 유포됐다"가 아니다. 오류가 있는 가짜 정보가 이동하면서 권위를 획득했다는 것이다.
| 단계 | 산출물 | 획득한 신뢰 |
|---|---|---|
| 1. 익명 GitHub 저장소 | 마크다운 텍스트 | 없음 |
| 2. MITRE 공개 폼 제출 | CVE ID 할당 | 공식 식별자 |
| 3. NVD 등재 | CVSS 9.8 표기 | 국가 표준 데이터베이스 |
| 4. CISA ADP 동의 | 심각도 확인 | 정부기관 승인 |
| 5. GHSA 전파 | 패키지 매핑 | 개발자 워크플로 진입 |
| 6. 상용 스캐너 | Critical 알림 | 기업 리스크 등록부 |
| 7. 자동 티켓팅 | 긴급 패치 지시 | 엔지니어 시간 소모 |
1단계와 7단계 사이 어디에도 "이 함수가 실제로 존재하는가"를 묻는 단계가 없다. 각 단계는 이전 단계의 판단을 신뢰하고 다음 단계로 넘긴다. 순환 참조로 만들어진 권위다.
CVSS 9.0 이상을 자동 우선순위화하거나 점수 기반으로 티켓을 여는 조직에서 이런 조작된 CVE는 실질적 부담으로 전환된다. 존재하지 않는 취약점을 조사하고 패치하는 데 실제 시간이 소모되고, 취약점 데이터베이스는 오염된다.
더 심각한 2차 피해 - AI가 유령을 패치한다
JFrog가 지적한 가장 중요한 대목은 여기다.
AI를 취약점 트리아지와 자동 조치에 사용하는 환경에서 조작된 CVE는 새로운 실패 양상을 만든다. AI 에이전트가 조작된 어드바이저리를 만나면 존재하지 않는 함수를 찾으려 시도하고, 존재하지 않는 코드에 대한 패치를 생성하며, 실제 코드베이스에 불필요한 변경을 권고한다.
정리하면 이런 구조다.
LLM이 생성한 허구 취약점
↓
자동 파이프라인 통과
↓
LLM 기반 트리아지 에이전트가 수신
↓
존재하지 않는 함수에 대한 패치 생성
↓
실제 코드베이스에 불필요한 변경 유입
↓
새로운 실제 버그 발생 가능
환각이 생성 측과 소비 측 양쪽에 있고, 그 사이에 인간 검증이 없는 구조. 자동화가 늘어날수록 오염의 전파 속도는 검증 속도를 앞지른다.
curl 사례가 보여준 다른 결말
비교 대상으로 curl 프로젝트의 궤적이 유용하다.
Daniel Stenberg는 2019년 4월 시작한 버그 바운티를 2026년 1월 31일 종료했다. 87건의 확인된 취약점에 10만 달러 이상을 지급한 성공적 프로그램이었다. 종료 이유는 명확했다. 확인율이 수년간 15%를 상회하다가 2025년 5% 미만으로 급락했다. 2026년 첫 21일 동안 20건이 접수됐고 그중 7건은 16시간 안에 몰렸는데, 실제 취약점은 하나도 없었다.
그런데 결말이 흥미롭다. curl은 2026년 3월 HackerOne으로 복귀했다. 유입량이 줄어서가 아니었다. 모델 성능이 올라가면서 보고서의 질이 달라졌기 때문이다. 슬롭 대신 기술적으로 정확한 고품질 보고서가 대량으로 들어오기 시작했다.
여기서 남는 문제는 성격이 바뀐다. Stenberg의 관찰에 따르면 AI는 버그 탐지에는 뛰어나지만 심각도 판단과 올바른 수정 작성에는 약하다. 서로 다른 연구자가 같은 AI에 비슷한 프롬프트를 넣어 동일한 답을 얻으면서 중복 보고가 급증하기도 한다. 결국 가장 어려운 판단 작업은 전부 인간 메인테이너에게 남는다.
SQLite 사태와 curl 사태를 나란히 놓으면 문제의 실체가 드러난다. 생성 비용은 0에 수렴하는데 검증 비용은 여전히 인간 전문가의 시간이다. 이 비대칭이 취약점 생태계를 압박하는 근본 동력이다.
실무 체크리스트: 슬롭 CVE 판별 신호
JFrog가 제시한 판별 기준을 실무 관점에서 정리한다.
| 신호 | 확인 방법 | 위험도 |
|---|---|---|
| 벤더 공식 확인 부재 | 메인테이너 보안 페이지(예: sqlite.org/cves.html) 대조 | 높음 |
| 커밋 이력 부재 | 참조 필드에 커밋 해시·PR 링크 없음 | 높음 |
| 메타데이터 모순 | CPE 제품 정의가 비어 있거나 버전 범위가 서술과 충돌 | 중간 |
| 존재하지 않는 코드 참조 | 대상 버전에 없는 함수, EOF를 넘는 행 번호 | 결정적 |
| 보고자 이력 | 신규 생성 계정, 단기간 대량 제출 | 중간 |
대응 원칙은 네 가지로 정리할 수 있다.
- 검증되지 않은 출처의 신규 CVE를 맹신하지 않는다
- Critical 등급 CVE는 점수가 실제 취약점과 부합하는지 검토한다
- 자사 환경이 실제로 영향받는지 확인한다
- 가능하면 안전한 환경에서 제공된 PoC로 재현한다
특히 4번이 핵심이다. 이번 사건에서 조작된 어드바이저리를 무너뜨린 것은 정교한 분석이 아니라 실제로 컴파일해서 돌려봤는가라는 가장 기초적인 질문이었다.
국내 조직이 점검해야 할 것
한국 기업의 취약점 관리 워크플로는 대체로 NVD의 CVSS 점수와 CPE 매칭에 강하게 결합돼 있다. 조달 요건, 내부 컴플라이언스, SBOM 기반 스캐닝이 모두 이 데이터를 상류로 삼는다.
NIST의 4월 정책 전환은 두 방향에서 문제를 만든다. 한쪽에서는 보강되지 않은 실제 취약점이 스캐너에 잡히지 않고, 다른 쪽에서는 보강된 가짜 취약점이 Critical로 티켓을 연다. CPE가 없으면 스캐너가 제품 매칭을 못 하므로 알림 자체가 발생하지 않는다.
점검 항목은 다음과 같다.
- CVSS 점수 단독으로 자동 티켓팅·SLA를 트리거하는 규칙이 있는가?
- NVD 단일 소스 의존인가, 벤더 어드바이저리 교차 확인 절차가 있는가?
- Critical 등급에 대해 최소한의 인간 검토 게이트가 존재하는가?
- AI 기반 트리아지 도구가 어드바이저리를 무비판적으로 수용하도록 설정돼 있지 않은가?
- 재현 불가 판정을 기록하고 재유입을 차단하는 메커니즘이 있는가?
LLM은 엑셀이지 오라클이 아니다
이 사태를 "AI가 위험하다"로 요약하면 인공지능의 환각, 잘못 읽은 것이다.
문제는 AI가 그럴듯한 텍스트를 생성했다는 데 있지 않다. 그럴듯한 텍스트를 사실로 전환해주는 제도적 파이프라인이 검증 없이 작동했다는 데 있다. LLM은 도구였고, 실패한 것은 거버넌스다.
엑셀은 수식을 정확히 계산한다. 그러나 셀에 무엇을 넣을지, 결과가 현실과 부합하는지는 사용자의 책임이다. 엑셀이 계산했다는 이유로 숫자가 참이 되지는 않는다. LLM도 마찬가지다. 문법적으로 완벽하고 도메인 용어가 정확한 취약점 보고서를 생성할 수 있지만, 그 안의 함수가 실존하는지는 보증하지 않는다.
이번 사태에서 진짜 실패는 어느 지점에서 발생했는가. 어드바이저리를 생성한 LLM인가, 아니면 그것을 신원 검증 없이 받아들이고 CVSS 9.8을 붙여 전 세계 스캐너로 유통시킨 파이프라인인가.
신뢰는 출력의 유창함이 아니라 검증의 존재에서 나온다. JFrog 팀이 한 일은 특별한 통찰이 아니었다. 저장소를 클론하고, 컴파일하고, 돌려본 것이다. 그 기초적 절차가 파이프라인 어디에도 없었다는 사실이 이 사건의 전부다.
AI 에이전트가 취약점 관리를 자동화하는 방향으로 산업이 이동하는 지금, 이 사건은 경고가 아니라 사양서로 읽혀야 한다. 생성 단계가 자동화될수록 검증 단계는 더 강해져야 한다. 반대로 가면, 우리는 기계가 만든 유령을 기계가 패치하고 인간이 그 청구서를 받는 시스템을 갖게 된다.
참고 자료
- JFrog Security Research, "SQLite Critical CVEs or LLM Slopes" (Afek Berger, 2026-07-30) https://research.jfrog.com/post/sqlite-critical-cves-or-llm-slops/
- SQLite 공식 CVE 페이지: https://sqlite.org/cves.html
- NIST, "NIST Updates NVD Operations to Address Record CVE Growth" (2026-04) https://www.nist.gov/news-events/news/2026/04/nist-updates-nvd-operations-address-record-cve-growth
- Daniel Stenberg, "The end of the curl bug-bounty" (2026-01-26) https://daniel.haxx.se/blog/2026/01/26/the-end-of-the-curl-bug-bounty/
- Cybernews, curl 버그 바운티 재개 관련 인터뷰 (2026-06)
본 칼럼은 공개된 리서치 자료를 기반으로 작성됐으며, 언급된 CVE 식별자는 보도 시점 기준 상태를 반영한다. 개별 CVE의 현재 상태는 NVD 및 벤더 공식 페이지에서 재확인이 필요하다.