İçeriğe geç

Güvensiz Seri Durumdan Çıkarma (ARCH5109)

Anahtar go.security.insecure-deserialization · Önem critical · Kategori security · CWE CWE-502

encoding/gob gibi tip bilgisi taşıyan seri çözücülere güvenilmeyen veri beslemek, saldırganın beklenmedik tipler enjekte etmesine ve klasik bir uzaktan kod çalıştırma vektörü oluşturmasına olanak tanır.

dec := gob.NewDecoder(r.Body)
var obj interface{}
dec.Decode(&obj) // güvenilmeyen istek gövdesi
dec := json.NewDecoder(r.Body)
var req CreateUserRequest // sıkı, beklenen tip
if err := dec.Decode(&req); err != nil {
http.Error(w, "bad request", 400)
return
}

Güvenilmeyen girdiyi yalnızca veri taşıyan JSON gibi formatlarda, açıkça tanımlanmış sıkı tiplere çözün.