// For flags

CVE-2017-9106

 

Severity Score

7.5
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

An issue was discovered in adns before 1.5.2. adns_rr_info mishandles a bogus *datap. The general pattern for formatting integers is to sprintf into a fixed-size buffer. This is correct if the input is in the right range; if it isn't, the buffer may be overrun (depending on the sizes of the types on the current platform). Of course the inputs ought to be right. And there are pointers in there too, so perhaps one could say that the caller ought to check these things. It may be better to require the caller to make the pointer structure right, but to have the code here be defensive about (and tolerate with an error but without crashing) out-of-range integer values. So: it should defend each of these integer conversion sites with a check for the actual permitted range, and return adns_s_invaliddata if not. The lack of this check causes the SOA sign extension bug to be a serious security problem: the sign extended SOA value is out of range, and overruns the buffer when reconverted. This is related to sign extending SOA 32-bit integer fields, and use of a signed data type.

Se detectó un problema en adns versiones anteriores a 1.5.2. adns_rr_info maneja inapropiadamente un *datap falso. El patrón general para formatear enteros es sprintf en un búfer de tamaño fijo. Esto es correcto si la entrada está en el rango correcto; de lo contrario, el búfer puede estar desbordado (dependiendo del tamaño de los tipos en la plataforma actual). Por supuesto, las entradas deben ser correctas. Y existen indicadores allí también, así que quizás se podría decir que la persona que llama debe comprobar estas cosas. Puede ser mejor requerir que la persona que llama haga que la estructura del puntero sea correcta, pero que el código aquí sea defensivo sobre (y tolere con un error pero sin bloquear) valores enteros fuera de rango. Por lo tanto: debe defender cada uno de estos sitios de conversión de enteros con una comprobación del rango real permitido y devolver adns_s_invaliddata si no lo hace. La falta de esta comprobación hace que el error de extensión de signo de SOA sea un problema de seguridad grave: el valor de SOA extendido de signo está fuera de rango y supera el búfer cuando se reconvierte. Esto está relacionado con el signo que extiende los campos enteros SOA de 32 bits y el uso de un tipo de datos con signo

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
Attack Vector
Network
Attack Complexity
Low
Authentication
None
Confidentiality
None
Integrity
None
Availability
Partial
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2017-05-21 CVE Reserved
  • 2020-06-18 CVE Published
  • 2023-03-07 EPSS Updated
  • 2024-08-05 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Gnu
Search vendor "Gnu"
Adns
Search vendor "Gnu" for product "Adns"
< 1.5.2
Search vendor "Gnu" for product "Adns" and version " < 1.5.2"
-
Affected
Fedoraproject
Search vendor "Fedoraproject"
Fedora
Search vendor "Fedoraproject" for product "Fedora"
31
Search vendor "Fedoraproject" for product "Fedora" and version "31"
-
Affected
Fedoraproject
Search vendor "Fedoraproject"
Fedora
Search vendor "Fedoraproject" for product "Fedora"
32
Search vendor "Fedoraproject" for product "Fedora" and version "32"
-
Affected