Skip to content

auth-secondarycommunicator.cc's doAxfr trusts first SOA over last #16366

@MegaManSec

Description

@MegaManSec

Trusts first SOA over last (L625-L643) (medium) (Confidence: 8.5) (Severity: 9.1)

doAxfr() accepts the first SOA seen in the incoming AXFR stream, sets zs.soa_serial from it, and then skips any further SOA records. If the remote AXFR sender (the primary) provides inconsistent SOA serials (first SOA != last SOA), the function will ignore the terminating SOA and keep the first SOA's serial. An attacker who can pretend to be or control the primary can exploit this within a single AXFR transfer to make the secondary compute/store an incorrect zone serial (for example accepting a lower/stale serial), which may lead to incorrect zone data being installed or incorrect transfer/notify behavior downstream.

This bug was found using ZeroPath.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions