fix: add buffer-length check in drv_mei_cpe.c#2
Open
orbisai0security wants to merge 11 commits into
Open
Conversation
Signed-off-by: Rany Hany <rany_hany@riseup.net>
The mac80211 shell implementation explicitly enabled noscan for station, adhoc and mesh interfaces when operating on a fixed frequency: for_each_interface "sta adhoc mesh" mac80211_set_noscan During the migration from the shell scripts to ucode, this logic was not carried over into supplicant.uc. As a result, wpa_supplicant would continue to perform scans even when fixed_freq is set, preventing reliable HT40/HE40 operation on 2.4 GHz and causing mesh links to fallback to 20 MHz. Restore the original behavior by setting noscan when fixed_freq is enabled for sta, adhoc and mesh modes. This matches the legacy mac80211.sh behavior and ensures correct channel width operation for fixed-frequency links. No functional change for non-fixed-frequency configurations. Signed-off-by: Omar Avelar <omar.avelar@gmail.com> Signed-off-by: Rany Hany <rany_hany@riseup.net>
For anything other than plain GCMP, we were not setting
pairwise/group to the configured cipher. Now we always
pin pairwise to ${config.wpa_pairwise} and also do so
for group cipher except in the CCMP case as the group
cipher might be set to TKIP on the AP's end in the
mixed-mode case.
This makes CCMP-256 and GCMP-256 work for the supplicant
in both WPA2 and WPA3, and also fixes the default WPA3
cipher on HE/EHT radios which previously fell back to
CCMP only.
Signed-off-by: Rany Hany <rany_hany@riseup.net>
AP-side Fast Transition can derive and hand over the pairwise PTK while the peer already has a station entry but before mac80211 marks it associated. Today ieee80211_add_key() rejects that with -ENOENT, which bubbles up to hostapd as: nl80211: kernel reports: key addition failed On OpenWrt APs this is commonly seen during 802.11r roaming. It is mostly harmless under WPA2 because userspace retries once the STA is associated, but under WPA3/PMF the timing window is tighter and the same rejection can break the roam. Accept AP-side pairwise keys as soon as the station entry exists, keep them in mac80211, skip the initial hardware upload while the station is still pre-association, and upload them to the driver once the station is associated. Keep the later AUTHORIZED transition as an extra retry point. This is proposed as an OpenWrt-local fix for now and keeps the behavioral change scoped to AP/AP_VLAN pairwise keys. Signed-off-by: AndreaCovelli <andcov23@gmail.com> Signed-off-by: Rany Hany <rany_hany@riseup.net>
git log --no-merges --pretty=oneline --abbrev-commit 018f60316d4dd6b4e741874eda40e2dfaa29df3b..2ab649809db7d7c4220ce4229573fc72a48ecf4d 2ab64980 wifi: mt76: add wcid publish check in mt76_sta_add 02934c3d wifi: mt76: mt7996: remove redundant pdev->bus check in probe 1ba5cc4b wifi: mt76: mt7925: drop redundant chandef.chan NULL check in MT7927 path 934f6471 wifi: mt76: mt7996: fix reading zeroed info->control.flags after mt76_tx_status_skb_add() 1e7ac9bf Revert "wifi: mt76: mt7996: avoid memset overwriting tx_info->control.flags" f5f14a01 Revert "wifi: mt76: disable rx napi before queue cleanup" 652740d6 wifi: mt76: mt7996: Fix possible NULL pointer dereference in mt7996_mac_write_txwi_80211() d8fc8629 wifi: mt76: mt7996: Fix possible token leak in mt7996_tx_prepare_skb() 2802466a wifi: mt76: mt7915: validate skb length in txpower SKU query e588dc48 wifi: mt76: mt7925: validate skb length in testmode query 3e54e1c8 wifi: mt76: mt792x: skip MLD header rewrite for 802.3 encap TX f142a553 wifi: mt76: mt7925: program BA state on active links 6cdcb480 wifi: mt76: mt7925: pass WCID explicitly to mt7925_mcu_sta_ba() 4ed65179 wifi: mt76: mt7925: keep TX BA state in the primary WCID 62956aec wifi: mt76: mt7925: add MT7927 USB support 8a7d31ac wifi: mt76: mt7925: add MT7927 PCIe support 049633e3 wifi: mt76: mt792x: enable CNM ops for MT7927 b8e20dc9 wifi: mt76: mt7925: add MBMC event handling 3e55b659 wifi: mt76: mt7925: sync MT7927 BSS band assignment 79e061f3 wifi: mt76: mt792x: add MT7927-specific PCIe DMA support 903f8b3b wifi: mt76: mt7925: switch DMA init to common mt792x queue helpers b81028de wifi: mt76: mt792x: factor out common DMA queue allocation d045c72b wifi: mt76: mt792x: add MT7927 WFSYS reset support 3969bb11 wifi: mt76: connac: tolerate inactive BSS deactivation 9342a017 wifi: mt76: mt7925: use link-specific removal for non-MLD STA 1f91523c wifi: mt76: connac: replace is_mt7925() with is_connac3() f698c7f2 wifi: mt76: mt7925: disable ASPM and runtime PM for MT7927 8175695d wifi: mt76: mt7925: use irq_map for chip-specific interrupt handling 6e5802e9 wifi: mt76: mt7925: add MT7927 firmware paths fda04bb4 wifi: mt76: mt7925: add MT7927 chip ID helpers 70bfd49d wifi: mt76: mt7925: advertise EHT 320MHz capabilities for 6GHz band 06277d86 wifi: mt76: mt7925: populate EHT 320MHz MCS map in sta_rec b1f7e240 wifi: mt76: mt7925: handle 320MHz bandwidth in RXV and TXS 3c575281 wifi: mt76: mt7925: add 320MHz bandwidth to bss_rlm_tlv bd493e29 wifi: mt76: mt7925: fix stale pointer comparisons in change_vif_links 58331e62 wifi: mt76: mt7996: Fix NULL pointer dereference in mt7996_init_tx_queues() 756b1c67 wifi: mt76: mt7925: add Netgear A8500 USB device ID 5c94494f dma.h: add missing variable initialization 0aca66c1 wifi: mt76: mt792xu: drop redundant device reference 52071e88 wifi: mt76x2u: drop redundant device reference a4f3781d wifi: mt76x0u: drop redundant device reference 49a0aa65 wifi: mt76: drop redundant device reference 97fc0e78 wifi: mt76: mt7921: fix uninitialized variable warning fe0555fe wifi: mt76: use kfree_rcu for offchannel link in mt76_put_vif_phy_link 0753cf18 wifi: mt76: mt7925: don't disable AP BSS when removing TDLS peer 6ae6f2b5 wifi: mt76: route TDLS-peer frames as 3-addr non-DS in HW encap dd1459c0 wifi: mt76: mt7921/mt7925: fix NULL dereference in CSA beacon d463ed94 wifi: mt76: mt7921: fix resource leak in probe error path 381582f2 wifi: mt76: mt7996: avoid memset overwriting tx_info->control.flags 4ab8f212 wifi: mt76: disable rx napi before queue cleanup 34064bd5 wifi: mt76: mt7925: clean up DMA on probe failure b0af99f2 wifi: mt76: mt7996: handle UNI PS sync events 9e613fb0 wifi: mt76: mt7915: handle MCU PS sync events 9a46d8d2 wifi: mt76: add PS buffering support for HW-managed TIM drivers d2b01fbc mt76: pass LED define via ccflags-y 012e52ae wifi: mt76: use hrtimer_setup() in mt76x02u beacon init Signed-off-by: Rany Hany <rany_hany@riseup.net>
git log --no-merges --pretty=oneline --abbrev-commit 2ab649809db7d7c4220ce4229573fc72a48ecf4d..72d8dc8574430210e782857c3f50ceddf355432c 72d8dc85 wifi: mt76: Drop unneeded mt76_register_debugfs_fops() return checks a3bf7dac wifi: mt76: mt7921: assert sniffer on chanctx change 9f60dd01 wifi: mt76: mt7996: fix potential tx_retries underflow e791fb66 wifi: mt76: mt7925: fix potential tx_retries underflow ee2bb333 wifi: mt76: mt7921: fix potential tx_retries underflow 748311fa wifi: mt76: mt7915: fix potential tx_retries underflow 4fb4a076 wifi: mt76: mt7921: disable auto regd changes after user set 06d1ccbe wifi: mt76: mt7921: add auto regdomain switch support cd3d2a68 wifi: mt76: mt7921: refactor regulatory notifier flow 1ec0abf5 wifi: mt76: mt7921: refactor CLC support check flow fc890d5b wifi: mt76: mt7921: refactor regulatory domain handling to regd.[ch] cd931f9e wifi: mt76: mt7996: disable UNI_BSS_INFO_PROTECT_INFO for mt7996 03644ac1 wifi: mt76: fix argument to ieee80211_is_first_frag() 91f19ba3 wifi: mt76: mt7921u: escalate broken USB transport to device reset 600dbf12 wifi: mt76: mt792x: add common USB transport reset helpers 994443de wifi: mt76: mt792x: report txpower for the requested vif link 1e05654e wifi: mt76: connac: factor out rate power limit calculation 761478b9 wifi: mt76: connac: use a helper to cache txpower_cur e640565e wifi: mt76: mt7996: limit work in set_bitrate_mask c0e41eb5 wifi: mt76: mt7996: reduce phy work in set_coverage 7825972b wifi: mt76: transform aspm_conf for pci_disable_link_state Signed-off-by: Rany Hany <rany_hany@riseup.net>
This is needed for submodules as well. Signed-off-by: Rany Hany <rany_hany@riseup.net>
When stations leave the area of service while there are transmissions pending inside the hardware, these queues can become stuck. This results in missing TXRX free / TXS events to the host. Also the throughput of other connected stations substantially decreases and latency massively increases. Periodically poll the queue state of connected station from hardware and purge queues detected as stuck. Signed-off-by: David Bauer <mail@david-bauer.net> Signed-off-by: Rany Hany <rany_hany@riseup.net>
Import patches from the SmartRG tree using the following command: for f in ~/projects/feed-wifi-master/mt76/patches/*; do cp $f smartrg-$(basename $f); done Dropped patches due to issues: - smartrg-1017-wifi-mt76-mt7915-fix-key-used-after-free-issue.patch (Causes 802.11s to stop working if both nodes have the same patch installed) Excluded patches (unwanted/unneeded): - smartrg-0006-mt76-pass-LED-define-via-ccflags-y.patch - smartrg-0012-mt76-mt7615-disable-160mhz.patch - smartrg-1032-wifi-mt76-mt7915-remove-BW160-support.patch Excluded patches (skipped to avoid refreshing): - smartrg-0018-wifi-mt76-mt7915-fix-tx-retry-and-failure-counting.patch - smartrg-1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch - smartrg-1001-wifi-mt76-mt7915-csi-implement-csi-support.patch - smartrg-1002-wifi-mt76-mt7915-air-monitor-support.patch - smartrg-1012-wifi-mt76-testmode-add-ZWDFS-test-mode-support.patch - smartrg-1018-wifi-mt76-mt7915-add-vendor-subcmd-EDCCA-ctrl-enable.patch - smartrg-1019-wifi-mt76-mt7915-implement-bin-file-mode.patch - smartrg-1024-wifi-mt76-mt7915-support-on-off-SW-ACI-through-debug.patch - smartrg-1028-wifi-mt76-mt7915-add-vendor-cmd-to-get-available-col.patch - smartrg-1036-wifi-mt76-mt7915-Disable-RegDB-when-enable-single-sk.patch - smartrg-1038-wifi-mt76-update-debugfs-knob-to-dump-token-pending-.patch - smartrg-1039-wifi-mt76-mt7915-support-enable-disable-spatial-reus.patch - smartrg-1045-wifi-mt76-mt7915-support-scs-feature.patch - smartrg-1046-wifi-mt76-mt7915-support-thermal-recal-debug-commnad.patch - smartrg-1047-wifi-mt76-mt7915-Add-support-for-lpi-and-duplicate-m.patch - smartrg-2000-wifi-mt76-mt7915-sync-lpi-support-with-mt7996.patch - smartrg-4000-0029-mtk-wifi-mt76-mt7996-rework-chainmask.patch - smartrg-4000-0030-mtk-wifi-mt76-mt7996-support-txpower-backoff-table.patch - smartrg-4000-0044-mtk-wifi-mt76-mt7996-rework-statistics-report-for-mt7996.patch - smartrg-4000-0063-mtk-wifi-mt76-mt7996-add-5th-chain-RX-RSSI-support.patch - smartrg-4000-0066-mtk-wifi-mt76-mt7996-update-agg-session-time-when-receivi.patch - smartrg-4000-1007-mtk-wifi-mt76-mt7996-add-txpower-debug-support.patch - smartrg-4000-1009-mtk-wifi-mt76-mt7996-add-binfile-mode-support.patch - smartrg-4000-1010-mtk-wifi-mt76-mt7996-add-normal-mode-pre-calibration.patch - smartrg-4000-1012-mtk-wifi-mt76-mt7996-add-mu-vendor-command-support.patch - smartrg-4000-1015-mtk-wifi-mt76-mt7996-add-vendor-cmd-to-get-available.patch - smartrg-4000-1019-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch - smartrg-4000-1020-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch - smartrg-4000-1022-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch - smartrg-4000-1036-mtk-wifi-mt76-testmode-add-channel-68-96.patch - smartrg-4000-1037-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch - smartrg-4000-1038-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch - smartrg-4000-1042-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch - smartrg-4000-1044-mtk-mt76-mt7996-Add-lpi-support-with-sku_idx-and-enh.patch - smartrg-4000-2138-mtk-wifi-mt76-mt7996-fix-MT7992-precal-layout-issue.patch - smartrg-9501-wifi-mt76-mt7915-fix-single-sku-power-limits.patch - smartrg-9501-wifi-mt76-mt7996-fix-single-sku-power-limits.patch - smartrg-9503-wifi-mt76-mt7996-remove-channel-68-96.patch - smartrg-9505-wifi-mt76-mt7996-make-precal-mcu-command-synchronous.patch - smartrg-9507-wifi-mt76-mt7996-fix-BE14000-6G-precal-size.patch - smartrg-9508-wifi-mt76-mt7996-skip-precal-unless-needed.patch - smartrg-9509-wifi-mt76-mt7996-add-mcu-set-tx-power-ctrl.patch - smartrg-9510-wifi-mt76-mt7915-get-airtime-from-mcu.patch - smartrg-9511-wifi-mt76-mt7915-guard-airtime-counters-against-overflow.patch - smartrg-9512-wifi-mt76-mt7996-guard-airtime-counters-against-overflow.patch - smartrg-9516-wifi-mt76-mt7996-add-device-tree-EDCCA-threshold-configuration.patch - smartrg-9518-wifi-mt76-mt7996-fix-tx-retry-and-failure-counting.patch Signed-off-by: Rany Hany <rany_hany@riseup.net>
Automated security fix generated by OrbisAI Security
The Lantiq ADSL MEI kernel driver copies user data into a fixed-size CMVMSG buffer using memcpy() without adequate bounds checking
2c25d44 to
dc3705c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix critical severity security issue in
package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c.Vulnerability
V-004package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c:1189Description: The Lantiq ADSL MEI kernel driver copies user data into a fixed-size CMVMSG buffer using memcpy() without adequate bounds checking. The size parameter masked with 0xf allows values up to 15, resulting in 30 bytes copied into a buffer with only 24 bytes available after the offset. This creates a 6-byte kernel stack buffer overflow.
Evidence
Exploitation scenario: An attacker with access to the /dev/mei_cpe device interface sends a crafted ADSL MEI message with size=15.
Scanner confirmation: multi_agent_ai rule
V-004flagged this pattern.Production code: This file is in the production codebase, not test-only code.
Threat Model Context
This is a local CLI tool - exploitation requires the attacker to control command-line arguments or input files.
Changes
package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.cVerification
Security Invariant
Regression test
This test guards against regressions — it's useful independent of the code change above.
Automated security fix by OrbisAI Security