Django 프로젝트가 2026년 10월 6일 Django 6.1.2, 6.0.9, 5.2.18 보안 릴리스를 동시에 공개했습니다. 공식 보안 공지는 지원 중인 Django 사용자가 가능한 한 빨리 업데이트할 것을 권고하고 있습니다.
이번 릴리스는 단순한 기능 개선이 아니라 네 가지 보안 이슈를 수정합니다. 그렇다고 모든 Django 프로젝트의 위험도가 같은 것은 아닙니다. 사용 중인 기능과 모델 구조에 따라 영향 범위가 다르므로 먼저 현재 버전과 프로젝트 구성을 확인하는 것이 좋습니다.
먼저 현재 Django 버전을 확인한다
가상환경을 활성화한 뒤 터미널에서 python -m django --version을 실행하면 현재 Django 버전을 확인할 수 있습니다. 패키지 관리 상태까지 같이 보려면 python -m pip show Django를 확인하는 것도 좋습니다.
운영 서버와 로컬 개발환경의 버전이 항상 같다고 가정하면 안 됩니다. requirements.txt, requirements.lock, poetry.lock, uv.lock 등 실제 배포에서 사용하는 의존성 파일을 함께 확인해야 합니다. 기존 장고 학습 흐름이 필요하다면 파이썬 장고 학습 순서도 함께 참고할 수 있습니다.
CVE-2026-77050과 84429: 서비스 거부 위험
CVE-2026-77050은 매우 길고 서로 다른 언어 코드를 반복 처리할 때 메모리 사용량이 커질 수 있는 문제입니다. Django는 500자를 넘는 언어 코드를 캐시 조회 전에 거부하거나 잘라내는 방식으로 대응했습니다.
CVE-2026-84429는 HTTP 헤더 파싱 과정과 관련된 잠재적 서비스 거부 문제입니다. 애플리케이션 코드에서 직접 해당 함수를 호출하지 않더라도 프레임워크 내부 처리에 포함될 수 있으므로, “우리 코드는 관련 기능을 쓰지 않는다”는 이유만으로 패치를 미루기보다 지원 버전의 보안 릴리스를 적용하는 편이 안전합니다.
CVE-2026-87890: GeoDjango를 쓴다면 별도로 확인
CVE-2026-87890은 공간 조회에서 바이트 값을 처리할 때 잠재적인 요청 위조로 이어질 수 있는 문제입니다. 일반 Django 프로젝트보다 GeoDjango의 공간 조회 기능을 사용하는 서비스가 우선적으로 영향을 검토해야 합니다.
GeoDjango를 사용하지 않는 프로젝트라면 이 취약점의 직접적인 노출 가능성은 낮을 수 있지만, 같은 릴리스에 다른 보안 수정도 함께 포함돼 있으므로 버전을 나눠서 판단할 이유는 크지 않습니다.
CVE-2026-87975: 수정 가능한 기본키를 쓰는 model formset
이 문제는 기본키를 폼에서 수정할 수 있는 모델 formset과 관련됩니다. 예를 들어 OneToOneField나 자연키, UUID 기본키를 폼 필드에 포함하는 특정 구성에서는 조작된 POST 데이터로 제한된 queryset 밖의 인스턴스를 삭제하거나 edit-only formset에서 새 인스턴스를 만들 수 있었습니다.
Django의 기본 BigAutoField 기본키를 사용하는 모델은 이 취약점의 영향을 받지 않는다고 공식 공지가 설명합니다. 모델 구조를 다시 확인하려면 Django models.py와 DB 사용 예제처럼 모델 정의 흐름부터 점검하는 것도 도움이 됩니다.
안전하게 업데이트하는 순서
운영 환경에서는 먼저 새 브랜치나 스테이징 환경에서 지원 버전의 보안 릴리스로 올리고 테스트를 실행하는 것이 좋습니다. Django 6.1 계열은 6.1.2, 6.0 계열은 6.0.9, 5.2 계열은 5.2.18로 맞춘 뒤 프로젝트 테스트와 주요 화면을 확인합니다.
업데이트 후에는 로그인, 폼 제출, 관리자 페이지, API 요청, 데이터베이스 읽기·쓰기처럼 서비스의 핵심 경로를 점검합니다. SQLite 기반 개발환경을 사용한다면 DB Browser for SQLite 사용 방법처럼 데이터 상태를 직접 확인하는 방법도 유용합니다.
버전만 올리고 끝내지 말아야 하는 이유
보안 패치는 빠르게 적용하는 것이 중요하지만, 의존성 파일만 수정하고 실제 운영 서버가 새 버전을 사용하지 않으면 의미가 없습니다. 배포 후 다시 python -m django --version을 실행하거나 배포 이미지의 패키지 목록을 확인해 실제 적용 여부를 검증하는 단계까지 포함해야 합니다.
네 취약점의 상세 설명과 공식 변경 사항은 Django 공식 보안 릴리스 공지에서 확인할 수 있습니다. 공격 재현보다 중요한 것은 사용 중인 버전을 확인하고 지원되는 패치 버전으로 이동하는 것입니다.