Apa yang terjadi
Pemeriksaan penahanan layanan AstGrep menggunakan path leksikal yang belum diselesaikan, sehingga symlink di dalam repositori yang menunjuk ke luar root dianggap dalam cakupan. Alat struktural MCP kemudian mengikutinya untuk membaca atau menimpa file di luar root proyek, melewati gerbang persetujuan yang dimaksudkan.
Mengapa penting
Penyerang yang dapat membuat korban menganalisis repositori dapat menanam symlink yang diikuti agen code-graph RAG untuk membaca kredensial/kunci/file env atau memodifikasi sumber saudara — primitif workspace-escape dalam alat analisis kode agentic.
Vektor serangan
AstGrepService menghitung file di bawah project_root dan mengandalkan should_skip_path untuk penahanan, tetapi pemeriksaan beroperasi pada path leksikal yang belum diselesaikan. Tautan simbolik yang ditanam di dalam repositori yang dianalisis dapat merujuk ke file di luar root yang dikonfigurasi sambil tampak dalam cakupan; structural_search mengungkapkan isinya dan structural_replace dengan dry_run=False mengikuti tautan dan menimpa konten yang dapat ditulis tanpa kontrol persetujuan loop agen.
Sistem yang terdampak
code-graph-rag < 0.0.589
Mitigasi
Tingkatkan ke code-graph-rag 0.0.589. Advisory: https://github.com/vitali87/code-graph-rag/security/advisories/GHSA-85gg-2gfq-q95m