취약점

취약점 (Vulnerabilities)

SQLite에 대해 보고된 CVE 대부분은 대부분의 사용 사례에는 적용되지 않아요. SQLite에 대해 보고된 모든 역사적 취약점은 공격자가 임의의 SQL을 제출·실행할 수 있거나, 악의적으로 조작된 데이터베이스 파일을 제출할 수 있어야 해요. 실제 애플리케이션 중 이 전제조건을 충족하는 경우는 드물답니다.

출처: 문서

본문

1. 요약 (Executive Summary)

  • SQLite에 관한 CVE는 대부분 SQLite 사용에 적용되지 않을 거예요.
  • SQLite에 대해 보고된 모든 역사적 취약점은 다음 전제조건 중 적어도 하나를 요구해요:
    • 공격자가 임의의 SQL 문을 제출하고 실행할 수 있음.
    • 공격자가 애플리케이션에 악의적으로 조작된 데이터베이스 파일을 제출하고, 애플리케이션이 그 파일을 열고 쿼리함.
  • 실제 애플리케이션 중 이 전제조건 중 하나라도 충족하는 경우는 드물어서, 패치되지 않은 오래된 SQLite 버전을 사용하더라도 취약한 실제 애플리케이션은 드물어요.
  • SQLite 개발팀은 버그를 신속하게, 보통 발견 후 몇 시간 안에 고쳐요. 버그가 실제 애플리케이션에 영향을 줄 것 같으면 SQLite의 새 릴리스가 발행돼요.
  • 그레이햇 해커들은 작성한 CVE의 수와 심각도에 따라 보상을 받아요. 그 결과 영향이 작거나 전혀 없지만 과장된 영향 주장을 하는 CVE가 proliferate(급증)해요.
  • SQLite에 대해 작성된 CVE 중 실제 취약점은 매우 드물어요. 공격자에게 어떤 새로운 능력도 주지 않기 때문이에요. 다음을 고려해보세요:
    • SQLite에 대해 작성된 거의 모든 CVE는 임의의 SQL을 주입하고 실행할 수 있는 능력을 요구해요.
    • 대부분 CVE의 광고된 결과는 "서비스 거부(denial of service)"로, 보통 NULL 포인터 역참조나 0으로 나누기 등으로 크래시를 일으키는 거예요.
    • 하지만 공격자가 이미 임의의 SQL을 실행할 수 있다면, 서비스 거부를 일으키기 위해 버그가 필요하지 않아요. 무제한 CPU, 메모리, 디스크 I/O를 소비해서 버그의 도움 없이 서비스 거부를 만들 완벽히 합법적이고 유효한 SQL 문이 많아요.
    • 따라서 공격자가 임의의 SQL을 주입하고 실행할 방법이 있다는 사실 자체가 곧 서비스 거부 공격이에요. 그 임의의 SQL이 SQLite의 버그를 건드려 크래시를 일으키는 것은 새 취약점이 아니에요.
  • SQLite 개발자는 CVE를 작성하지 않아요. SQLite에 대해 찾은 CVE는 모두 제3자가 만든 것으로, 종종 핵심 개발자의 입력 없이 만들어져요. 흔한 시나리오는 누군가 SQLite의 버그를 보고하고 신속히 고쳐진 뒤, 몇 주 후 그 버그에 대한 CVE가 개발자도 모르는 사이 나타나는 거예요.
  • SQLite에 관한 CVE가 권위 있는 정보를 담고 있다고 가정하면 안 돼요. CVE는 종종 부정확함을 포함해요. SQLite 개발자들은 SQLite에 관한 CVE에 명확화와 수정을 추가하려고 시도했어요.

2. CVE에 대하여

CVE("Common Vulnerabilities and Exposures")는 시스템이 해킹될 수 있게 할 수 있는 소프트웨어 버그에 대한 보고예요. CVE 뒤의 아이디어는 건전해요. 정보 보안을 손상시킬 수 있는 소프트웨어 버그를 쉽게 추적할 수 있는 공통 명명 체계를 제공하죠.

CVE 뒤의 원래 아이디어는 건전하지만, CVE를 만들고 관리하는 현재 프로세스는 부적절해요. 수많은 그레이햇 해커들이 광범위한 오픈소스 소프트웨어 제품(SQLite와 많은 다른 것)에 퍼저를 돌리고, 발견하는 문제에 대해 CVE를 작성해요. 그레이햇들은 작성한 CVE의 수와 심각도에 따라 때로 명예로, 때로 금전으로 보상받아요. 이 인센티브는 종종 제대로 검증되지 않고 과장된 영향 주장을 가질 수 있는 CVE의 급증을 초래해요. CVE의 품질 관리 절차는 이 입력 홍수를 감당하지 못해서, 과장되거나 오해의 소지가 있거나 누락되거나 부정확한 주장을 수정하기 어려워요.

이것이 CVE가 쓸모없다는 뜻은 아니에요. CVE는 여전히 (대부분) 실제 버그를 보고해요. 하지만 대부분의 경우 그 버그는 그 자체로 데이터 손실이나 손상에 기여하지 않는다는 의미에서 진정한 취약점이 아니에요. 버그가 보고되고 고쳐지는 것은 좋은 일이에요. 하지만 모든 버그가 모든 애플리케이션에서 접근 가능한 것은 아니에요. SQLite의 경우, CVE가 보고한 대부분의 버그는 대부분의 애플리케이션에서 접근 불가능해요. 최신 SQLite 버전으로 업그레이드하는 것은 항상 좋은 계획이지만, 인터넷의 익명 그레이햇이 CVE를 작성했다고 해서 긴급 상황일 필요는 없어요.

2.1. 별도의 SQL 삽입 취약점이 보통 필요해요

복잡한 구조적 입력을 처리하는 다른 C 라이브러리들은 신뢰할 수 없는 소스의 검증되지 않은 입력을 다루도록 일상적으로 요청받아요. libjpeg, libzip, OpenSSL 같은 라이브러리는 잠재적으로 적대적인 에이전트에서 직접 오는 입력 스트림을 넘겨받아요.

하지만 SQLite 같은 데이터베이스 엔진은 보통 이렇지 않아요. SQLite에 전달되는 SQL 스크립트는 (신뢰하는) 애플리케이션 자체에서 오지, 공격자에게서 오지 않아요. 때로 애플리케이션이 외부 공격자가 애플리케이션을 속여 공격자 설계의 SQL을 데이터베이스 엔진으로 보내도록 하는 버그를 포함하기도 해요. 이것은 SQL Injection 취약점이라 불리는 애플리케이션의 별도 버그예요. SQL 텍스트는 실행 가능한 코드이므로, SQL Injection 취약점은 사실 Remote Code Execution (RCE) 취약점의 특수한 경우예요. SQL Injection은 아마 다른 종류의 RCE만큼 심하지는 않아요. SQL은 강력한 언어지만 익스플로잇을 만들기에는 Python이나 셸 스크립트나 원시 머신 코드만큼 편리하지 않기 때문이에요. 그럼에도 SQL Injection은 심각한 문제예요.

SQLite에 대해 작성된 대부분의 CVE는 공격자가 SQLite에서 임의의 SQL 스크립트를 실행할 수 있다고 가정해요. 대부분의 애플리케이션에서 이는 먼저 공격자가 악성 SQL을 주입할 수 있게 하는 SQL Injection 취약점이 있어야 한다는 뜻이에요.

소수의 애플리케이션은 잠재적으로 적대적인 에이전트에서 받은 신뢰할 수 없는 SQL 스크립트를 SQLite에서 직접 실행하게 허용해요. 주요 예로는 Chrome과 Safari 웹 브라우저가 있어요. 이 브라우저들은 익명 웹 페이지가 Javascript의 WebSQL 기능을 사용해 SQL을 실행하게 해줘요. 이는 자원에 대한 엄격히 통제된 제약이 있는 샌드박스 안에서 이루어져요. SQL 스크립트가 서비스 거부 공격에서 사용 가능한 모든 메모리나 CPU 사이클을 흡수하지 못하게요. Chrome과 Safari는 적대적 에이전트가 나머지 머신에 해를 끼치거나 손상시키지 않는 코드를 실행하도록 허용하는 인프라를 갖추고 있어요. Javascript도 실행하기 때문에 그럴 수밖에 없어요. 엄격히 통제하지 않으면 무절제한 SQL보다 더 큰 피해를 줄 수 있거든요. Chrome과 Safari를 제외하면, SQLite 개발자가 아는 어떤 애플리케이션도 익명 원격 에이전트가 임의의 SQL 텍스트를 실행하도록 의도적으로 허용하지 않아요.

하지만 SQLite에 대해 작성된 대부분의 CVE는 공격자가 데이터베이스 엔진에서 어떤 임의의 SQL이든 자유롭게 실행할 수 있다고 경솔하게 가정해요. 그래서 대체로, SQLite에 대해 작성된 대부분 CVE는 사실상 Chrome과 Safari에서 사용되는 SQLite에만 적용돼요. 다시 말해, SQLite용 CVE 대부분은 Chrome이나 Safari의 개발자가 아니면 적용되지 않아요.

2.2. 어둠의 마법에 대한 방어 (Defense Against Dark Arts)

대부분의 애플리케이션은 흔하지 않은 SQL 입력의 버그에 대해 걱정하지 않고 SQLite를 사용할 수 있어요. 애플리케이션이 SQL을 제어하고, 애플리케이션이 의도적으로 SQLite를 깨뜨리려 하지 않는다면, 모든 것이 잘 동작할 거예요. 최신 패치 버전의 SQLite가 필요하지 않아요. 어떤 이전 버전이든 제대로 동작할 거예요.

하지만 애플리케이션이 신뢰할 수 없는 SQL을 안전하게 실행할 수 있어야 하는 경우가 있어요. SQLite 개발자들은 이 목적을 위해 SQLite를 안전하게 만들기 위해 열심히 노력해요, 가끔 실수가 있긴 하지만요. 이 경우 최신 패치를 따라잡는 것이 좋아요. 별도의 "defense against dark arts" 문서는 SQLite가 직접 신뢰할 수 없는 소스에서 오는 입력을 받는 경우 제로데이 공격을 방지하는 데 도움이 되는 추가 제안을 포함해요.

2.3. CVE에 대한 SQLite 개발자의 정책

SQLite 개발자는 버그가 보고되자마자, 보통 몇 시간 안에 SQLite의 모든 버그를 고쳐요. 수정은 공개 SQLite 소스 트리에서 즉시 이용 가능해요. 버그가 기존 애플리케이션에 문제를 일으킬 것 같으면 SQLite용 새 패치 릴리스가 발행돼요.

하지만 SQLite 개발자는 CVE를 추적하지 않아요. 여기에는 여러 이유가 있어요:

  • 개발자들은 버그가 고쳐진 지 한참 후에 CVE에 대해 알게 되는 경우가 많아요. 이는 많은 CVE가 초기 보고에서 버그 수정을 언급한다는 사실에서 알 수 있어요.
  • CVE는 대부분의 애플리케이션에 영향을 줄 것 같은 SQLite의 버그에 대한 낮은 품질의 정보 소스예요.
  • CVE가 보고한 거의 모든 버그는 그냥 버그일 뿐 진정한 취약점이 아니에요. 그것들이 취약점이라고 주장하는 것은 "취약점"이라는 단어의 의미를 확대 해석하는 것이고, SQLite 개발자들은 그런 기만에 참여하고 싶지 않아요.
  • 개발자들은 CVE 콘텐츠에 대한 편집 영향력이 없고, 목소리가 없는 그룹에 의해 통제되는 것을 좋아하지 않아요.

3. 최근 SQLite CVE의 상태

SQLite 개발자들은 CVE를 SQLite 버그에 대한 신뢰할 수 있는 정보 소스로 여기지 않지만, 많은 그룹, 특히 높은 관료 조직의 바닥에서 일하는 소규모 팀들이 CVE를 추적할 필요가 있음을 인정해요. 이 수고를 돕기 위해 SQLite에 영향을 주는 최근 CVE의 다음 표를 제공해요.

SQLite와 연관된 새 CVE가 아래 표에 없으면 SQLite Forum의 개발자들에게 알려서 추가되도록 해주세요.

참고: 아래 표에서 "Fix"는 버그를 수정한 버전을, "Comments"는 요약 설명을 나타내요. CVE 번호와 버전, 기술적 내용은 원문 그대로 보존했어요.

CVE 번호 Fix Comments
CVE-2026-11822, CVE-2026-11824 3.53.2 (2026-06-03) SQLITE_DBCONFIG_DEFENSIVE가 비활성화되고 FTS5가 활성화된 시스템에서 임의의 SQL을 실행할 수 있는(예: SQL injection을 통해) 공격자가 힙 버퍼 끝 너머에 쓰기를 일으킬 수 있어요. 정확히 같은 문제에 대해 두 개의 별도 CVE가 있어요.
CVE-2026-51296, CVE-2026-51297, CVE-2026-51300, CVE-2026-51302, CVE-2026-51303, CVE-2026-51304 SQLite의 버그 아님 재현이 불가능해요. AI 환각(hallucination)으로 보여요. JFrog.com의 분석을 참고해요.
CVE-2025-3277, CVE-2025-29087 3.49.1 (2025-02-18) concat_ws() SQL 함수의 버그가 malloc()에서 얻은 배열 끝 너머로 쓰기를 일으킬 수 있어요. 공격자가 concat_ws()의 첫 번째 인자를 제어해서 구분자 문자열이 2MB 이상으로 크다면, 결과 버퍼 크기 계산의 정수 오버플로가 짧은 malloc()과 그 뒤의 할당된 공간 끝 너머 쓰기를 일으킬 수 있어요. 2025-02-16T10:57z 체크인으로 수정됨.
CVE-2025-6965 3.50.2 (2025-06-28) 애플리케이션에 임의의 SQL 문을 주입할 수 있는 공격자가 정수 오버플로를 일으켜 배열 끝 너머 읽기를 초래할 수 있어요. 2025-06-27에 수정됨.
CVE-2025-7458 3.42.0 (2023-05-16) 애플리케이션에 임의의 SQL 문을 주입할 수 있는 공격자가 정수 오버플로를 일으켜 배열 끝 너머 읽기를 초래할 수 있어요. 2023-03-16에 수정됨.
CVE-2025-7709 3.50.3 (2025-07-17) 데이터베이스 콘텐츠를 완전히 제어하는 공격자가 손상된 FTS5 인덱스를 만들어 정수 오버플로로 인해 배열 경계 밖 메모리에 접근할 수 있어요. 2025-07-15에 수정됨.
CVE-2025-29088, CVE-2025-52099 3.49.1 (2025-02-18) C언어 API 루틴 sqlite3_db_config(db,SQLITE_DBCONFIG_LOOKASIDE,...)에 경계 밖 인자를 전달하면 크래시와 서비스 거부로 이어질 수 있어요. Forum 게시글 48f365daec로 보고됨. 2025-02-17T14:16Z 체크인으로 처리됨.
CVE-2025-70873 3.52.0 (2026-03-06) zipfile 확장(표준 SQLite의 일부가 아니지만 보통 CLI 빌드에 포함)을 사용할 때, 잘못된 형식의 ZIP 파일 입력이 범위 밖 읽기를 초래할 수 있어요. Forum 게시글 2025-12-06T16:46:32Z로 보고되고 trunk에서 2025-12-06T23:58:09.413Z 체크인으로 수정됨.
CVE-2024-0232 3.43.2 (2023-10-10) 애플리케이션에 임의의 SQL 문을 주입할 수 있는 공격자가 SQLite의 JSON 파서에서 use-after-free 버그를 유발해 (이론상) 애플리케이션 크래시와 서비스 거부로 이어질 수 있어요. 버그 보고는 forum 스레드 b25edc1d4662 참고.
CVE-2023-32697 SQLite의 버그 아님 이것은 Java에서 SQLite에 접근을 제공하는 래퍼 라이브러리인 SQLite JDBC 라이브러리의 버그예요. SQLite JDBC는 SQLite와 독립적으로 만들어지고 유지돼요. 이름에 "SQLite"가 포함되어 있어도 SQLite JDBC 라이브러리는 SQLite 프로젝트와 어떤 관련도 없어요. 이 CVE가 식별한 취약점은 별도의 SQLite JDBC 래퍼 라이브러리에 있고 SQLite 자체에는 영향이 없어요.
CVE-2023-39939 SQLite의 버그 아님 이것은 SQLite의 버그가 아니에요. SQLite를 링크하는 애플리케이션(LuxCal Web Calendar)의 SQL injection 버그예요. 이 CVE는 SQLite에 관한 것이 아니지만 설명에 "SQLite"가 언급되어서 여기에 나열해요.
CVE-2023-39543 SQLite의 버그 아님 이것은 SQLite의 버그가 아니에요. SQLite를 링크하는 별도 애플리케이션(LuxCal Web Calendar)의 XSS 취약점이에요. 버그는 애플리케이션에 있고 SQLite에는 없어요. 하지만 설명에 "SQLite"가 언급되어서 여기에 나열해요.
CVE-2023-7104 3.43.1 (2023-09-11) 이것은 SQLite 코어가 아니라 SQLite의 session 확장의 버그예요. 이 버그는 -DSQLITE_ENABLE_SESSION 컴파일 시 옵션으로 SQLite를 재컴파일한 뒤 Session C언어 API로 적대자가 미묘하게 손상시킨 changeset을 처리하는 애플리케이션에서만 도달 가능해요. 그래서 이 버그는 아마 적용되지 않을 거예요. 자세한 내용은 forum 게시글 f935c4708dd528d9 참고.
CVE-2022-46908 핵심 SQLite 라이브러리의 버그 아님 이것은 SQLite 데이터베이스 파일에 접근하는 명령줄 쉘 프로그램의 --safe 명령줄 옵션의 버그예요. 이 버그는 SQLite 라이브러리에는 존재하지 않아요. 사용자가 --safe 옵션에 의존하지 않는 한 CLI 문제도 아니에요. 심각하지 않아요. 보안 문제인지는 논쟁의 여지가 있어요.
CVE-2022-38627 SQLite의 버그 아님 이것은 SQLite의 버그가 아니에요. 특정 PHP 애플리케이션의 SQL injection 버그예요. 다시 말해 버그는 PHP 애플리케이션 코드에 있고 SQLite에는 없어요. 이 CVE는 SQLite에 관한 것이 아니지만 버그에 대한 홍보에 "SQLite"가 언급되어서 여기에 나열해요.
CVE-2022-35737 3.39.2 (2022-07-21) 이 버그는 배열 경계 오버플로예요. SQLite가 제공하는 일부 C언어 API를 사용할 때만 접근 가능해요. SQL로는 도달할 수 없고, 손상된 데이터베이스 파일을 SQLite에 제공해서도 도달할 수 없어요. 이 버그는 아주 긴 문자열 입력(길이 20억 바이트 초과)이 몇몇 특정 C언어 인터페이스의 인자로 제공될 때만, 그것도 특수한 상황에서만 발생해요.
CVE-2022-24854 SQLite의 버그 아님 이 CVE는 SQLite 자체가 아니라 SQLite를 사용하는 애플리케이션의 버그를 설명해요. SQLite는 모든 것을 올바르게 하고 있어요. 애플리케이션이 사용자에게 SQL 문을 실행할 수 있게 허용하는데, 그 문장들이 사용자가 정상적으로 접근하면 안 되는 정보를 누출하거나 변경할 수 있어요. 이것은 순전히 애플리케이션 버그예요. SQLite의 오작동이나 취약점을 설명하지 않아요.
CVE-2022-21227 SQLite의 버그 아님 이 CVE는 SQLite의 Node.js 바인딩을 제공하는 제3자 패키지의 버그를 설명해요. 보고된 버그는 제3자 Node.js 바인딩에 있고 SQLite 자체에는 없어요. 모호하게 표현된 CVE 설명에서 "SQLite"라는 단어 사용에 혼동하지 마세요.
CVE-2021-45346 SQLite의 버그 아님 이 CVE는 오보(misinformation)예요. SQLite forum 게시글 53de8864ba114bf 주변의 토론을 참고해요.
CVE-2021-42169 SQLite의 버그 아님 이 CVE는 SQLite와 아무 관련이 없어요. 우연히 SQLite를 사용하는 애플리케이션의 버그에 관한 거예요. CVE 설명에 SQLite가 언급되어 있어서, 이것이 SQLite 버그가 아님을 강조하기 위해 여기 포함했어요.
CVE-2021-36690 핵심 SQLite 라이브러리의 버그 아님 이 버그는 SQLite 핵심 라이브러리가 아니라, CLI의 .expert 명령을 구현하는 데 사용되는 실험적 확장에 있어요. 버그를 포함한 코드는 표준 SQLite 빌드에는 나타나지 않지만 sqlite3.exe 명령줄 도구에는 포함돼요. 애플리케이션은 확장을 구현하는 추가 소스 코드 파일을 링크하고 확장을 활성화하는 다른 의도적 조치를 취해야 문제 있는 코드가 실행될 수 있어요. 문제 있는 확장을 사용하는 드문 애플리케이션의 경우, 악성 SQL이 NULL 포인터 역참조와 서비스 거부를 일으킬 수 있어요.
CVE-2021-31239 핵심 SQLite 라이브러리의 버그 아님 이것은 CLI의 버그예요. 무제한 셸 접근이 있는 사용자가 서비스 거부를 일으킬 수 있게 해요. 물론 무제한 셸 접근이 있는 사용자가 훨씬 더 나쁜 장난을 일으킬 쉬운 방법은 백만 가지가 넘어요. 문제는 표준 SQLite의 일부가 아닌 appendvfs 확장에 있었어요.
CVE-2021-28305 SQLite의 버그 아님 이것은 SQLite의 버그가 아니에요. 버그는 SQLite를 사용하는 제3자 애플리케이션에 있어요. CVE 설명에 SQLite가 이름으로 언급되어 있지만, 그래서 이 CVE를 목록에 포함했어요.
CVE-2021-23404 SQLite의 버그 아님 이것은 SQLite의 버그가 아니에요. 버그는 SQLite를 사용하고 이름에 "sqlite"를 포함한 제3자 애플리케이션에 있어요. 이 CVE는 버그가 SQLite와 아무 관련이 없어도 SQLite를 언급하기 때문에 목록에 포함됐어요.
CVE-2021-20227 3.34.1 (2021-01-20) 악성 SQL 문이 read-after-free를 일으켜요. 이 특정 read-after-free 인스턴스에서 해가 될 수 있는 것은 아는 한 없어요. 이 버그는 메모리 산화제(sanitizer) 없이는 감지할 수 없어요. 이 CVE는 이 버그가 RCE(원격 코드 실행) 취약점이라고 주장하지만 그 주장은 틀렸어요. RCE 주장은 오보예요.
CVE-2021-20223 3.34.0 (2020-12-01) 이 CVE가 식별한 문제는 취약점이 아니에요. 오작동이에요. 코딩 오류로 인해 FTS5가 흔하지 않은 상황에서 때때로 일관되지 않고 잘못된 결과를 반환하지만, 메모리 오류는 발생하지 않아요.
CVE-2020-15358 3.32.3 (2020-06-18) 악성 SQL 문이 힙 버퍼 끝 너머 읽기를 일으켜요.
CVE-2020-13871 3.32.3 (2020-06-18) 악성 SQL 문이 읽기 전용 use-after-free 메모리 오류를 일으켜요.
CVE-2020-13632 3.32.0 (2020-05-22) 악성 SQL 문이 FTS3 확장의 matchinfo() SQL 함수에서 NULL 포인터 읽기를 일으켜 서비스 거부를 초래해요.
CVE-2020-13631 3.32.0 (2020-05-22) 악성 SQL 문(가상 테이블을 자신의 shadow table 중 하나로 이름 바꾸려는 ALTER TABLE)이 무한 루프와 서비스 거부를 일으켜요.
CVE-2020-13630 3.32.0 (2020-05-22) 악성 SQL 문이 읽기 전용 use-after-free를 일으켜 FTS3 확장의 snippet() SQL 함수의 잘못된 출력을 초래할 수 있어요. 이 버그로 데이터를 유출하거나 애플리케이션을 크래시시키는 알려진 방법은 없어요.
CVE-2020-13435, CVE-2021-0646 3.32.1 (2020-05-25) 악성 SQL 문이 NULL 포인터 읽기 접근과 서비스 거부를 일으켜요.
CVE-2020-13434 3.32.1 (2020-05-25) printf() SQL 함수를 포함한 악성 SQL 문이 정수 오버플로를 초래해, 20억 바이트 이상의 0x30 또는 0x20(ASCII '0' 또는 ' ')으로 스택을 덮어쓸 수 있어요. 스택 덮어쓰기임에도 불구하고 제어를 리다이렉트하거나 피해 수준을 높이는 알려진 방법은 없어요. 이것은 서비스 거부 공격일 뿐이에요.
CVE-2020-11656 3.32.0 (2020-05-22) SQLite를 -DSQLITE_DEBUG로 컴파일하면 악성 SQL 문이 메모리 할당의 읽기 전용 use-after-free를 일으켜요. 릴리스 빌드에는 영향이 없어요.
CVE-2020-11655 3.32.0 (2020-05-22) 악성 SQL 문이 초기화되지 않은 포인터를 사용한 읽기와 서비스 거부를 일으켜요.
CVE-2020-9327 3.32.0 (2020-05-22) 악성 SQL 문이 초기화되지 않은 포인터를 사용한 읽기와 서비스 거부를 일으켜요.
CVE-2020-6405 3.31.0 (2020-01-22) 악성 SQL 문이 NULL 포인터 역참조와 서비스 거부를 일으켜요.
CVE-2019-20218 3.31.0 (2020-01-22) 악성 SQL 문이 초기화되지 않은 포인터 읽기와 서비스 거부를 일으켜요.
CVE-2019-19959 3.31.0 (2020-01-22) 악성 SQL 문이 Zipfile 가상 테이블 확장에서 NULL 포인터 역참조와 서비스 거부를 일으켜요. 이것은 선택적인 Zipfile 가상 테이블 확장이 배포된 경우에만 가능하며, 기본 빌드에서는 그렇지 않아요.
CVE-2019-19926 3.31.0 (2020-01-22) 악성 SQL 문이 초기화되지 않은 포인터 읽기와 서비스 거부를 일으켜요.
CVE-2019-19925 3.31.0 (2020-01-22) 악성 SQL 문이 Zipfile 가상 테이블 확장에서 NULL 포인터 역참조와 서비스 거부를 일으켜요. 이것은 선택적인 Zipfile 가상 테이블 확장이 배포된 경우에만 가능하며, 기본 빌드에서는 그렇지 않아요.
CVE-2019-19924 3.31.0 (2020-01-22) 악성 SQL 문이 초기화되지 않은 포인터 참조와 서비스 거부를 일으켜요.
CVE-2019-19923 3.31.0 (2020-01-22) 악성 SQL 문이 NULL 포인터 역참조와 서비스 거부를 일으켜요.
CVE-2019-19646 3.31.0 (2020-01-22) PRAGMA integrity_check 명령이 prepared statement의 바이트 코드를 무한히 반복하게 할 수 있어요. 애플리케이션이 SQL 문의 런타임을 제한하는 적절하고 신중한 조치를 취하지 않았다면 서비스 거부를 가능하게 할 수 있어요. 이것은 취약점이 아니에요. 재귀적 common table expression을 포함한 쿼리를 포함해, 본질적으로 영원히 실행되는 수많은 완벽히 유효한 SQL 쿼리가 있기 때문이에요.
CVE-2019-19317 3.31.0 (2020-01-22) 이 CVE는 SQLite의 개발 체크인에 있는 버그를 식별해요. 그 버그는 어떤 공식 SQLite 릴리스에도 나타나지 않았어요.

더 알아보기 (Learn more)