docs/ChangeLog/20250831.md
| Old Keyboard Name | New Keyboard Name |
|---|---|
| bastardkb/charybdis/3x5/v2/elitec | bastardkb/charybdis/3x5/elitec |
| bastardkb/charybdis/3x5/v2/splinky_2 | bastardkb/charybdis/3x5/elitec |
| bastardkb/charybdis/3x5/v2/splinky_3 | bastardkb/charybdis/3x5/elitec |
| bastardkb/charybdis/3x5/v2/stemcell | bastardkb/charybdis/3x5/elitec |
| bastardkb/charybdis/3x6/v2/elitec | bastardkb/charybdis/3x6/elitec |
| bastardkb/charybdis/3x6/v2/splinky_2 | bastardkb/charybdis/3x6/elitec |
| bastardkb/charybdis/3x6/v2/splinky_3 | bastardkb/charybdis/3x6/elitec |
| bastardkb/charybdis/3x6/v2/stemcell | bastardkb/charybdis/3x6/elitec |
| bastardkb/charybdis/4x6/v2/elitec | bastardkb/charybdis/4x6/elitec |
| bastardkb/charybdis/4x6/v2/splinky_2 | bastardkb/charybdis/4x6/elitec |
| bastardkb/charybdis/4x6/v2/splinky_3 | bastardkb/charybdis/4x6/elitec |
| bastardkb/charybdis/4x6/v2/stemcell | bastardkb/charybdis/4x6/elitec |
| bastardkb/dilemma/3x5_2/splinky | bastardkb/dilemma/3x5_2/promicro |
| bastardkb/scylla/v2/elitec | bastardkb/scylla/promicro |
| bastardkb/scylla/v2/splinky_2 | bastardkb/scylla/promicro |
| bastardkb/scylla/v2/splinky_3 | bastardkb/scylla/promicro |
| bastardkb/scylla/v2/stemcell | bastardkb/scylla/promicro |
| bastardkb/skeletyl/v2/elitec | bastardkb/skeletyl/promicro |
| bastardkb/skeletyl/v2/splinky_2 | bastardkb/skeletyl/promicro |
| bastardkb/skeletyl/v2/splinky_3 | bastardkb/skeletyl/promicro |
| bastardkb/skeletyl/v2/stemcell | bastardkb/skeletyl/promicro |
| bastardkb/tbkmini/v2/elitec | bastardkb/tbkmini/promicro |
| bastardkb/tbkmini/v2/splinky_2 | bastardkb/tbkmini/promicro |
| bastardkb/tbkmini/v2/splinky_3 | bastardkb/tbkmini/promicro |
| bastardkb/tbkmini/v2/stemcell | bastardkb/tbkmini/promicro |
| helix/rev2 | helix/beta |
| helix/rev3_4rows | helix/rev3 |
| helix/rev3_5rows | helix/rev3 |
| kprepublic/cstc40/daughterboard | kprepublic/cstc40/rev1 |
| kprepublic/cstc40/single_pcb | kprepublic/cstc40/rev2 |
| ll3macorn/bongopad | ll3ma/bongopad |
| novelkeys/nk65/base | novelkeys/nk65/v1 |
| tweetydabird/lotus58/elite_c | tweetydabird/lotus58 |
| tweetydabird/lotus58/nanoboot | tweetydabird/lotus58 |
| tweetydabird/lotus58/promicro | tweetydabird/lotus58 |
| tweetydabird/lotus58/rp2040_ce | tweetydabird/lotus58 |
VIA's keyboard matrix testing functionality, which allows users to identify active key presses, has been identified as a potential security concern by community members and security researchers. This feature has been demonstrated to enable unauthorized keystroke capture, with documented examples showing how malicious scripts could exploit this capability to create keyloggers. A recent security assessment revealed that user credentials could be compromised by exploiting the matrix testing function combined with VIA's keycode assignment queries. In this attack scenario, a script could remain active during a locked session and capture password input when users authenticate upon return.
The QMK team notified the VIA team of this security vulnerability on May 17, 2022, and made multiple subsequent attempts to coordinate a mitigation strategy. Despite repeated outreach, the VIA team has provided no acknowledgment or response to these security concerns. Given the severity of the potential security implications and the lack of engagement from the VIA team, the QMK team has unilaterally implemented a security enhancement that modifies the keyboard matrix testing functionality to prevent the reporting of key press events. This change prioritizes user security and data protection over potential feature compatibility concerns within VIA.
In line with the notice period, deprecation notices for larger items are listed here.
DEFAULT_FOLDER removal (#23281)DEFAULT_FOLDER was originally introduced to work around limitations within the build system.
Parent folders containing common configuration would create invalid build targets.
With the introduction of keyboard.json as a configuration file, the build system now has a consistent method to detect build targets.
The DEFAULT_FOLDER functionality is now removed with the intent that rules.mk is now pure configuration.
Backwards compatibility of build targets has been maintained where possible.
Pin Compatible updates (#20330)Converter support has been further limited to only function if a keyboard declares that it is compatible.
This can be configured in the following ways:
:::::tabs
==== keyboard.json
{
"development_board": "promicro", // [!code focus]
}
==== rules.mk
PIN_COMPATIBLE = promicro
:::::
see the Converters Feature documentation for more information.
Backwards compatibility of deprecated RGB and Mouse keycodes has been removed.
See the following documentation for the list of currently supported keycodes:
Core:
DEFAULT_FOLDER handling (#23281)process_record_quantum keycodes (#25328)process_action_kb callback (#25331){rgb|led}_matrix_get_mode_name(). (#25344)RGB_ and Mouse keycodes (#25444)QMK_PM2040 board (#25481)STEMCELL board (#25486)QMK_BLOK board (#25487)AUDIO_INIT_DELAY implementation (#25491)CLI:
Keyboards:
c3_pro.c corrections (#25049)DEFAULT_FOLDER to keyboard aliases (#25291)default_rgb keymap (#25342)helix/pico (#25428)helix/rev2 (#25429)helix/rev3_{4,5}rows (#25430)helix common configuration (#25433)bastardkb/tbkmini (#25438)novelkeys/nk65 to use RGB Matrix (#25450)bastardkb/skeletyl (#25456)bastardkb/scylla (#25459)bastardkb/dilemma/3x5_2 (#25462)usb.force_nkro to host.default.nkro (#25468)bastardkb/charybdis/3x5 (#25488)bastardkb/charybdis/3x6 (#25493)bastardkb/charybdis/4x6 (#25494)DF() within keyboards (#25541)tweetydabird/lotus58 (#25547)Keyboard fixes:
keebio/quefrency/rev1:default60 (#25423)bastardkb/tbkmini keymap's build target (#25458)Bugs: