RDKBACCL-1962 RDKB- Security Vulnerability Findings Report in WebUI BPI - #148
RDKBACCL-1962 RDKB- Security Vulnerability Findings Report in WebUI BPI#148vanemage wants to merge 3 commits into
Conversation
|
📋 PR Format Reminder
Expected: |
There was a problem hiding this comment.
Pull request overview
This PR hardens the XB6 WebUI “onewifi” wireless configuration action handler by adding stricter validation and mapping for ssid_number, intended to address security vulnerability findings around untrusted input affecting TR-181 paths and radio selection.
Changes:
- Adds SSID instance bounds (
$MIN_SSID_INSTANCE,$MAX_SSID_INSTANCES) and validatesssid_numberlength/format/range with 400 responses on invalid input. - Introduces
ResolveRadioFromSsid()to constrain which SSID instances are allowed to map to radios. - Refactors the non-
band_steeringpath to derive$rvia the mapping helper and adds a small apply helper.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
… WebUI BPI" This reverts commit 54aa50d.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.
Suppressed comments (3)
source/Styles/xb6/jst/actionHandler/ajaxSet_wireless_network_configuration_onewifi.jst:144
- The
if ($i == 17) ... else ...block lacks braces, so only the$i = String(...)line is actually underelseand$r = ResolveRadioFromSsid($i)runs unconditionally. This also re-reads$arConfig['ssid_number'], bypassing the earlier validated$ivalue and makes the special-case for SSID 17 ineffective.
$i = $arConfig['ssid_number'];
if($i == 17)
$r=3; //17th is private ssid for 6 GHz(radio 3)
else
$i = String($arConfig['ssid_number']);
$r = ResolveRadioFromSsid($i);
source/Styles/xb6/jst/actionHandler/ajaxSet_wireless_network_configuration_onewifi.jst:153
$channelis referenced later (e.g., when deciding whether to append to Consolelog), but after this change it is never assigned. This will result in an undefined-variable notice/error and the comparison may behave incorrectly. Define$channelhere (or update the later reference to use the new variable name).
$get_channel_automatic = getStr("Device.WiFi.Radio."+$r+".AutoChannelEnable");
$get_wireless_mode = getStr("Device.WiFi.Radio."+$r+".OperatingStandards");
$get_channel_bandwidth = getStr("Device.WiFi.Radio."+$r+".OperatingChannelBandwidth");
source/Styles/xb6/jst/actionHandler/ajaxSet_wireless_network_configuration_onewifi.jst:83
$ssid_numberis optional here, but the rest of this handler later assumes it exists (e.g.,$arConfig['ssid_number']), which can lead to undefined-index/type errors and makes the validation bypassable. Treat a missingssid_numberas an invalid request and return 400 early.
This issue also appears on line 139 of the same file.
$i = (array_key_exists('ssid_number', $arConfig)) ? String($arConfig['ssid_number']) : "";
$ssid_log = substr(String($i), 0, 32);
if ($i != "" && strlen($i) > 3) {
No description provided.