From 2d016751399ed0f4159e72a6cbcd63694a84dabf Mon Sep 17 00:00:00 2001 From: Ilia Ross Date: Sun, 17 May 2026 14:32:10 +0200 Subject: [PATCH] Fix reflected XSS in Webmin status messages * Note: Escape the /webmin/ message parameter, strip restart redirect HTML to plain text, and harden filter_javascript(). --- t/web-lib-funcs-filter_javascript.t | 39 +++++++++++++++++++++++++++++ web-lib-funcs.pl | 9 +++++-- webmin/index.cgi | 2 +- webmin/webmin-lib.pl | 10 +++++++- 4 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 t/web-lib-funcs-filter_javascript.t diff --git a/t/web-lib-funcs-filter_javascript.t b/t/web-lib-funcs-filter_javascript.t new file mode 100644 index 000000000..aa87e936c --- /dev/null +++ b/t/web-lib-funcs-filter_javascript.t @@ -0,0 +1,39 @@ +#!/usr/bin/perl +# Tests for web-lib-funcs.pl filter_javascript. + +use strict; +use warnings; +use Test::More; +use File::Basename qw(dirname); +use File::Spec; + +my $script = File::Spec->rel2abs( + File::Spec->catfile(dirname(__FILE__), '..', 'web-lib-funcs.pl')); +require $script; + +is( + main::filter_javascript('