FiTuna is pre-1.0. Only the latest release on PyPI and main are supported. Fixes land on main and ship in the next release.
Please use GitHub's private reporting: Security → Report a vulnerability. If that isn't available, email dbstjr3576@gmail.com with [fituna security] in the subject.
Include the FiTuna command you ran, your OS and llama.cpp build (fituna doctor --json shows both), and what an attacker could gain. This is a volunteer project, so an acknowledgement can take up to a week. Please don't open a public issue before a fix is released.
FiTuna does not run inference or quantization itself. It runs llama.cpp binaries as subprocesses with your user's permissions and parses their output.
- Binaries.
llama-quantize,llama-bench, andllama-perplexityare taken from--llama-bin-dirorPATH. Pointing FiTuna at an untrusted binary is the same as running it yourself. - Conversion script. To convert a Hugging Face model directory, FiTuna runs
convert_hf_to_gguf.pywith its own Python interpreter (ensure_base_gguf()infituna/model_info.py)._find_script()infituna/binaries.pylooks for the script in--llama-bin-dirand also two levels above it, so both locations are part of the trust boundary. - Model files. FiTuna reads the model file you point it at. The GGUF header parser treats it as untrusted input.
- Corpus download.
fituna fetch-corpusonly talks tohttps://datasets-server.huggingface.co.--dataset,--config, and--splitchoose which dataset to read from that host. - Not executed. FiTuna never runs
llama-cli,llama-server, orollama. It only prints commands for you to run, and--export-ollamaonly writes aModelfile.
Treat --llama-bin-dir (and the directories two levels above it), PATH, --out, and the chosen dataset as inputs you control. FiTuna does not sandbox or verify them.
In scope: a bug where FiTuna mishandles an untrusted path, model file, script, or downloaded corpus and grants more than the access described above. Out of scope: the consequences of pointing FiTuna at binaries, scripts, or directories you don't trust.
FiTuna는 아직 1.0 이전 단계입니다. PyPI의 최신 릴리스와 main만 지원합니다. 수정은 main에 반영한 뒤 다음 릴리스에 포함합니다.
GitHub의 비공개 신고 기능을 이용해 주세요: Security → Report a vulnerability. 이 기능을 쓸 수 없다면 제목에 [fituna security]를 넣어 dbstjr3576@gmail.com으로 이메일을 보내 주세요.
실행한 FiTuna 명령, OS와 llama.cpp 빌드(fituna doctor --json으로 둘 다 확인 가능), 공격자가 얻을 수 있는 권한이나 정보를 적어 주세요. 개인이 자원봉사로 관리하는 프로젝트라 접수 확인까지 최대 일주일이 걸릴 수 있습니다. 수정본이 나오기 전에는 공개 이슈로 올리지 말아 주세요.
FiTuna는 추론이나 양자화를 직접 하지 않습니다. llama.cpp 바이너리를 사용자 권한의 subprocess로 실행하고 그 출력을 해석합니다.
- 바이너리.
llama-quantize,llama-bench,llama-perplexity는--llama-bin-dir또는PATH에서 찾습니다. 신뢰할 수 없는 바이너리를 지정하는 것은 그 프로그램을 직접 실행하는 것과 같습니다. - 변환 스크립트. Hugging Face 모델 디렉터리를 변환할 때 FiTuna는 자신과 같은 Python 인터프리터로
convert_hf_to_gguf.py를 실행합니다(fituna/model_info.py의ensure_base_gguf()).fituna/binaries.py의_find_script()는 이 스크립트를--llama-bin-dir뿐 아니라 두 단계 위 디렉터리에서도 찾으므로, 두 위치 모두 신뢰 경계에 포함됩니다. - 모델 파일. 사용자가 지정한 모델 파일을 읽습니다. GGUF 헤더 파서는 이 파일을 신뢰할 수 없는 입력으로 다룹니다.
- 코퍼스 다운로드.
fituna fetch-corpus는https://datasets-server.huggingface.co에만 접속합니다.--dataset,--config,--split은 이 호스트에서 어떤 데이터셋을 받을지만 정합니다. - 실행하지 않는 것. FiTuna는
llama-cli,llama-server,ollama를 실행하지 않습니다. 사용자가 실행할 명령을 출력할 뿐이며,--export-ollama도Modelfile만 씁니다.
--llama-bin-dir(그리고 두 단계 위 디렉터리까지), PATH, --out, 선택한 데이터셋은 사용자가 통제하는 입력으로 취급해 주세요. FiTuna는 이들을 sandbox로 격리하거나 검증하지 않습니다.
신고 대상: FiTuna가 신뢰할 수 없는 경로, 모델 파일, 스크립트, 다운로드한 코퍼스를 잘못 다뤄 위에서 설명한 범위를 넘는 권한을 내주는 버그. 신고 대상 아님: 신뢰할 수 없는 바이너리, 스크립트, 디렉터리를 직접 지정해서 생긴 결과.