From 63f3327dd06af0a9c9a544fe9b8954bdb836f90f Mon Sep 17 00:00:00 2001 From: Sainath Poojary Date: Fri, 17 Jul 2026 19:00:20 +0530 Subject: [PATCH 1/3] Security: Use aria-controls attribute with safe $( '#' + id ) selector pattern avoiding unsafe use of href --- src/js/_enqueues/admin/common.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/_enqueues/admin/common.js b/src/js/_enqueues/admin/common.js index c3d49310e8897..9c5799c0ada41 100644 --- a/src/js/_enqueues/admin/common.js +++ b/src/js/_enqueues/admin/common.js @@ -695,7 +695,7 @@ $('.contextual-help-tabs').on( 'click', 'a', function(e) { $('.contextual-help-tabs .active').removeClass('active'); link.parent('li').addClass('active'); - panel = $( link.attr('href') ); + panel = $( '#' + link.attr( 'aria-controls' ) ); // Panels. $('.help-tab-content').not( panel ).removeClass('active').hide(); From 73fbff2d02da90408692acc182a93ef998313df6 Mon Sep 17 00:00:00 2001 From: Sainath Poojary Date: Wed, 22 Jul 2026 18:28:03 +0530 Subject: [PATCH 2/3] fix: use document.getElementById for panel selection --- src/js/_enqueues/admin/common.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/_enqueues/admin/common.js b/src/js/_enqueues/admin/common.js index 9c5799c0ada41..df39ee52e8a49 100644 --- a/src/js/_enqueues/admin/common.js +++ b/src/js/_enqueues/admin/common.js @@ -695,7 +695,7 @@ $('.contextual-help-tabs').on( 'click', 'a', function(e) { $('.contextual-help-tabs .active').removeClass('active'); link.parent('li').addClass('active'); - panel = $( '#' + link.attr( 'aria-controls' ) ); + panel = $( document.getElementById( link.attr( 'aria-controls' ) ) ); // Panels. $('.help-tab-content').not( panel ).removeClass('active').hide(); From c79be3cef23ab388e7fa530591802ce76d67ff3c Mon Sep 17 00:00:00 2001 From: Sainath Poojary Date: Wed, 22 Jul 2026 18:34:53 +0530 Subject: [PATCH 3/3] fix: prevent runtime errors by validating contextual help panel existence --- src/js/_enqueues/admin/common.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/js/_enqueues/admin/common.js b/src/js/_enqueues/admin/common.js index df39ee52e8a49..5f9c8ccae8c74 100644 --- a/src/js/_enqueues/admin/common.js +++ b/src/js/_enqueues/admin/common.js @@ -695,7 +695,11 @@ $('.contextual-help-tabs').on( 'click', 'a', function(e) { $('.contextual-help-tabs .active').removeClass('active'); link.parent('li').addClass('active'); - panel = $( document.getElementById( link.attr( 'aria-controls' ) ) ); + panel = $( document.getElementById( link.attr( 'aria-controls' ) || '' ) ); + + if ( ! panel.length ) { + return; + } // Panels. $('.help-tab-content').not( panel ).removeClass('active').hide();