Joomla Fabrik 취약점 3건 분석|공격 조건과 대응
Fabrik 4.7.3 미만에서 공개된 비인증 원격 코드 실행 1건과 SQL 주입 2건의 차이, 적용 범위, 업데이트와 사후 점검 순서를 다룹니다.

세 취약점이 함께 공개된 이유
Fabrik은 Joomla에서 폼, 목록, 데이터베이스 기반 애플리케이션을 구성하는 확장 기능입니다. 이번에 공개된 세 취약점은 서로 다른 입력 지점을 다루지만 공통점이 분명합니다. 모두 로그인하지 않은 외부 요청이 서버 측 처리 흐름에 도달할 수 있고, Fabrik 4.7.3 미만이 영향 범위로 제시됐습니다. CVE-2026-76604는 PHP 폼 요소가 사용자 제공 값을 코드로 실행하는 경로, CVE-2026-76571은 목록 필터의 조건 값이 WHERE 절에 결합되는 경로, CVE-2026-76602는 목록 정렬 값이 ORDER BY 절에 사용되는 경로를 각각 다룹니다. 따라서 CVE 번호 세 개를 따로 체크하기보다 공개 폼과 목록이 어떤 서버 측 기능에 연결되는지 함께 확인하는 편이 정확합니다.
세 항목은 모두 네트워크에서 접근할 수 있고 인증이 필요하지 않은 조건으로 평가됐습니다. 다만 결과는 같지 않습니다. PHP 폼 요소 취약점은 서버에서 임의 코드가 실행될 수 있은 경로이므로 웹 애플리케이션과 호스트 전체의 신뢰 경계를 흔듭니다. 두 SQL 주입은 데이터베이스 쿼리를 구성하는 방식이 핵심이며, 공개된 설명은 데이터 읽기 위험을 구체적으로 지적합니다. 운영자는 RCE와 SQL 주입을 한 줄의 ‘치명적 취약점’으로 뭉개지 말고 코드 실행 경로와 데이터 조회 경로를 분리해 조사해야 합니다.
영향 범위와 적용 조건
공식 CVE 레코드는 세 항목 모두 Fabrik 4.7.3 미만을 영향 대상으로 설명합니다. Joomla 코어 버전만 확인해서는 판정할 수 없으며 사이트마다 설치된 Fabrik 확장 버전을 직접 확인해야 합니다. 운영 대행사나 다중 사이트 환경에서는 관리 화면에 보이는 대표 사이트 하나만 점검하지 말고 각 Joomla 인스턴스의 확장 목록과 배포 이력을 대조해야 합니다. 비활성화한 확장도 파일이 남아 있거나 별도 사이트에서 활성화돼 있을 수 있으므로 자산 목록과 실제 파일 배포 상태를 함께 보는 것이 좋습니다.
- CVE-2026-76604: Fabrik PHP 폼 요소를 통한 비인증 원격 코드 실행
- CVE-2026-76571: 목록 필터의 condition 값이 WHERE 절에 결합되는 비인증 SQL 주입
- CVE-2026-76602: 목록 모델의 order 값이 검증 없이 ORDER BY에 사용되는 비인증 SQL 주입
노출 여부는 기능 사용 상태에도 좌우됩니다. Fabrik을 설치했더라도 문제의 PHP 폼 요소나 목록 필터·정렬 기능이 외부에 공개되지 않은 사이트는 공격 표면이 다를 수 있습니다. 그렇다고 기능 미사용만으로 업데이트를 미루면 안 됩니다. 구성 변경, 복제된 메뉴, 테스트 페이지, 오래된 링크를 통해 예상하지 못한 경로가 다시 노출될 수 있기 때문입니다. 버전 업데이트를 기본 조치로 두고 공개 엔드포인트 식별은 우선순위와 사후 검토 범위를 정하는 자료로 활용하는 방식이 안전합니다.

세 취약점의 공격 흐름 차이
CVE-2026-76604에서 경계해야 할 지점은 PHP 폼 요소의 서버 측 실행입니다. 외부 입력이 코드로 해석되는 경로가 인증 없이 열리면 데이터 조회를 넘어 웹 서버 프로세스 권한 안에서 코드가 동작할 수 있습니다. 이 항목을 조사할 때는 공개 폼에 PHP 요소가 포함됐는지, 해당 요소가 어떤 이벤트와 AJAX 처리에 연결되는지, 웹 서버 계정이 접근할 수 있은 파일과 비밀정보 범위가 어디까지인지 차례로 확인해야 합니다. 공개된 사실을 넘어 공격 문자열을 재현할 필요는 없으며 읽기 전용 구성 확인과 로그 검토만으로도 우선순위를 정할 수 있습니다.
CVE-2026-76571은 목록 필터의 condition 값이 쿼리 WHERE 절에 그대로 결합되는 문제가 핵심입니다. 필터 기능은 사용자가 데이터 목록을 좁혀 보는 정상 기능과 가까워 요청 자체가 평범해 보일 수 있습니다. 따라서 단순히 오류 응답만 찾기보다 비정상적으로 긴 조건 값, 반복되는 필터 요청, 예상하지 않은 데이터 조회 패턴을 함께 살펴야 합니다. CVE-2026-76602는 정렬에 사용되는 order 값이 검증 없이 ORDER BY에 들어가는 경로입니다. 두 SQL 주입은 입력 필드가 다르므로 WAF나 프록시에서 한 파라미터만 막은 임시 규칙으로 둘 다 해결됐다고 판단하면 안 됩니다.
데이터베이스 권한도 영향 크기를 가릅니다. Joomla가 사용하는 데이터베이스 계정에 필요한 스키마만 최소 권한으로 부여했다면 다른 데이터베이스로의 확장을 제한할 수 있습니다. 반대로 광범위한 읽기·쓰기 권한이나 여러 애플리케이션이 공유하는 계정을 사용하면 한 사이트의 취약점이 더 넓은 데이터 범위와 연결될 수 있습니다. 최소 권한은 패치를 대신하지 않지만 업데이트 전후의 위험 평가와 사후 조사 범위를 줄이는 중요한 보조 통제입니다.
업데이트와 노출 축소 순서
- 각 Joomla 사이트에서 Fabrik 버전과 설치 경로를 확인하고 4.7.3 미만을 우선 목록화합니다.
- 공개 메뉴, 폼, 목록, API·AJAX 경로 중 Fabrik과 연결된 항목을 자산별로 식별합니다.
- 즉시 업데이트가 어려운 동안에는 불필요한 공개 폼과 목록 접근을 제한하고 관리 가능한 범위에서 프록시·WAF 로그를 강화합니다.
- Fabrik을 4.7.3 이상으로 업데이트한 뒤 캐시를 비우고 폼 제출, 목록 필터, 정렬 등 업무 기능을 정상 계정으로 확인합니다.
- 업데이트 전 노출 기간의 웹 로그, PHP 오류 로그, Joomla 관리자 변경, 데이터베이스 조회 이상을 검토합니다.
업데이트는 파일만 교체하는 작업으로 끝나지 않습니다. Fabrik은 폼과 목록을 통해 실제 업무 데이터를 다루므로 적용 후에는 대표 기능을 기능별로 검증해야 합니다. 공개 폼이 정상 제출되는지, 목록 필터와 정렬 결과가 예상대로 나오는지, 사용자 권한별 화면이 유지되는지 확인합니다. 실패 시 임의로 구버전 파일을 덮어쓰기보다 백업된 확장 패키지와 데이터베이스 복구 절차를 사용하고 공개 경로 제한을 유지한 채 원인을 분석하는 편이 안전합니다.
업데이트 창을 잡을 때는 구성과 데이터의 복구 지점을 먼저 확인합니다. 확장 파일 백업만 있고 데이터베이스 스키마 변경 전 상태를 되돌릴 수 없다면 기능 장애가 길어질 수 있습니다. 반대로 데이터베이스만 복원하고 파일 버전이 달라지면 또 다른 오류가 생길 수 있습니다. 배포 전 백업 시각과 대상, 롤백 조건, 담당자를 기록하고 업데이트 직후 정상 동작 검증 결과를 같은 기록에 연결하면 재시도 과정에서도 보안 상태를 놓치지 않습니다.
사후 확인의 초점
RCE 가능성이 있은 항목과 SQL 주입 항목은 로그에서 찾을 흔적이 다릅니다. PHP 폼 요소 경로는 예상하지 않은 PHP 오류, 웹 루트의 새 파일이나 변경된 파일, 비정상적인 하위 프로세스, 설정 파일 접근을 중점적으로 봅니다. SQL 주입 경로는 반복되는 필터·정렬 요청, 데이터베이스 오류, 비정상적으로 넓은 조회, 평소와 다른 응답 크기와 시간을 검토합니다. 단일 IP 차단이나 특정 문자열 검색만으로 조사를 끝내지 말고 시간대, 요청 경로, 세션, 관리자 변경을 연결해 보는 것이 중요합니다.
업데이트 전에 노출된 기간이 있었다면 Joomla 관리자 계정, 데이터베이스 계정, 애플리케이션 비밀정보의 변경 필요성을 조사 결과에 따라 판단합니다. 무조건 모든 자격증명을 한꺼번에 바꾸면 서비스 장애와 증거 손실이 생길 수 있으므로 우선 로그와 파일 무결성을 보존하고 영향 범위를 정리한 뒤 교체 순서를 세웁니다. 반대로 의심스러운 코드 실행이나 데이터 접근 흔적이 발견됐다면 단순 패치 완료로 종결하지 말고 호스트 격리, 증거 보존, 비밀정보 교체, 데이터 영향 평가를 포함한 사고 대응 절차로 전환해야 합니다.
운영자가 남겨야 할 기록
마지막으로 자산별 설치 버전, 공개 기능, 업데이트 시각, 검증 결과, 로그 검토 범위를 한 문서에 남겨야 합니다. 같은 Fabrik을 쓰더라도 사이트마다 노출된 폼과 데이터가 다르기 때문에 ‘전체 업데이트 완료’라는 한 줄보다 사이트별 증거가 훨씬 유용합니다. 세 CVE는 하나의 제품 업데이트로 함께 다룰 수 있지만 사후 확인에서는 PHP 코드 실행과 두 SQL 주입 경로를 분리해야 누락을 줄일 수 있습니다. 완료 조건은 4.7.3 이상 적용, 공개 기능 정상 동작, 노출 기간 검토, 이상 징후가 있을 때의 별도 사고 대응 전환까지 확인하는 것입니다.
확인한 출처
- CVE-2026-76604 RecordCVE Program · 공식 자료
- CVE-2026-76571 RecordCVE Program · 공식 자료
- CVE-2026-76602 RecordCVE Program · 공식 자료
사실관계와 수치는 연결된 자료에서 다시 확인할 수 있습니다.
의견을 남겨주세요
아직 등록된 댓글이 없습니다.