SIG(0) validation during query flood may lead to undefined behavior
Undefined behavior may result due to a race condition leading to a use-after-free violation. If BIND receives an incoming DNS message signed with SIG(0), it begins work to validate that signature. If, during that validation, the "recursive-clients" limit is reached (as would occur during a query flood), and that same DNS message is discarded per the limit, there is a brief window of time while the SIG(0) validation may attempt to read the now-discarded DNS message.
This issue affects BIND 9 versions 9.20.0 through 9.20.22, 9.21.0 through 9.21.21, and 9.20.9-S1 through 9.20.22-S1.
BIND 9 versions 9.18.28 through 9.18.49 and 9.18.28-S1 through 9.18.49-S1 are NOT affected.
Problem Types
| Type | CWE ID | Description |
|---|
| CWE | CWE-362 | CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') |
| CWE | CWE-416 | CWE-416 Use After Free |
Type: CWE
Description: CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
Type: CWE
Description: CWE-416 Use After Free
Metrics
| Version | Base score | Base severity | Vector |
|---|
| 3.1 | 7.5 | HIGH | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Version: 3.1
Base score: 7.5
Base severity: HIGH
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Impacts
| CAPEC ID | Description |
|---|
| N/A | The use of memory after it is freed is undefined ("dangling pointer"). The BIND process may abort with a segmentation violation or similar error. If memory from the discarded message has not been reused or reclaimed, the validation might proceed normally. Any kind of code execution from such an improper data read is unlikely. |
CAPEC ID: N/A
Description: The use of memory after it is freed is undefined ("dangling pointer"). The BIND process may abort with a segmentation violation or similar error. If memory from the discarded message has not been reused or reclaimed, the validation might proceed normally. Any kind of code execution from such an improper data read is unlikely.