The analysis is based on the detailed descriptions provided by CERT Polska for CVE-2026-67277. MikroTik RouterOS is a closed-source system, and specific function names or code diffs are not publicly available. Therefore, the identified functions are inferred based on the described vulnerabilities within the 'btest' (bandwidth-test) service.
-
Missing Authentication (CWE-306): The vulnerability description explicitly states that 'RouterOS accepts a "related" btest connection before the corresponding primary session has completed authentication.' This indicates a flaw in the initial connection handling or authentication enforcement logic within the btest service. The btest_service.handle_connection function is identified as the component responsible for this initial state management, allowing unauthenticated access to a critical function.
-
Kernel Memory Disclosure: The description mentions 'With "random-data=false", the sender transmits an uninitialized tail from a kernel packet buffer.' This points to a function responsible for preparing and sending UDP packets during a btest. When the 'random-data' option is disabled, this function fails to properly initialize the entire packet buffer, leading to the leakage of kernel memory. The btest_service.send_udp_data function is identified as the component responsible for this data transmission without proper buffer initialization.
-
Denial of Service (DoS): The description highlights 'A separate unchecked, inverted packet-size interval causes unsigned integer underflow, anomalously large fragmented output, and can restart the RouterOS kernel.' This indicates a flaw in the packet size validation or calculation logic. An incorrect input for packet size, likely a negative or malformed value, leads to an unsigned integer underflow, resulting in the creation of excessively large and fragmented packets that crash the kernel. The btest_service.validate_packet_size function is identified as the component responsible for handling packet size, where the underflow occurs due to insufficient checks.
These functions represent the logical points of failure described in the CVE and would appear in a runtime profiler during exploitation, even if their exact internal names are not publicly known. The names provided are descriptive of their vulnerable behavior within the context of the 'btest' service.