In RubyGem excon before 0.71.0, there was a race condition around persistent connections, where a connection which is interrupted (such as…
GitHub_M·CWE-664·Published 2019-12-16
In RubyGem excon before 0.71.0, there was a race condition around persistent connections, where a connection which is interrupted (such as by a timeout) would leave data on the socket. Subsequent requests would then read this data, returning content from the previous response. The race condition window appears to be short, and it would be difficult to purposefully exploit this.
In RubyGem excon before 0.71.0, there was a race condition around persistent connections, where a connection which is interrupted (such as by a timeout) would leave data on the socket. Subsequent requests would then read this data, returning content from the previous response. The race condition window appears to be short, and it would be difficult to purposefully exploit this.
### Impact There was a race condition around persistent connections, where a connection which is interrupted (such as by a timeout) would leave data on the socket. Subsequent requests would then read this data, returning content from the previous response. The race condition window appears to be short, and it would be difficult to purposefully exploit this. ### Patches The problem has been patched in 0.71.0, users should upgrade to this or a newer version (if one exists). ### Workarounds Users can workaround the problem by disabling persistent connections, though this may cause performance implications. ### References See the [patch](https://github.com/excon/excon/commit/ccb57d7a422f020dc74f1de4e8fb505ab46d8a29) for further details. ### For more information If you have any questions or comments about this advisory: * Open an issue in [excon/issues](https://github.com/excon/excon/issues) * Email us at [geemus+github@gmail.com](mailto:geemus+github@gmail.com)
### Impact There was a race condition around persistent connections, where a connection which is interrupted (such as by a timeout) would leave data on the socket. Subsequent requests would then read this data, returning content from the previous response. The race condition window appears to be short, and it would be difficult to purposefully exploit this. ### Patches The problem has been patched in 0.71.0, users should upgrade to this or a newer version (if one exists). ### Workarounds Users can workaround the problem by disabling persistent connections, though this may cause performance implications. ### References See the [patch](https://github.com/excon/excon/commit/ccb57d7a422f020dc74f1de4e8fb505ab46d8a29) for further details. ### For more information If you have any questions or comments about this advisory: * Open an issue in [excon/issues](https://github.com/excon/excon/issues) * Email us at [geemus+github@gmail.com](mailto:geemus+github@gmail.com)
En RubyGem excon versiones anteriores a 0.71.0, se presentó una condición de carrera alrededor de conexiones persistentes, donde una conexión que es interrumpida (tal y como, mediante un tiempo de espera) dejaría datos en el socket. Las peticiones posteriores entonces leerían estos datos y devolverían el contenido de la respuesta anterior. La ventana de condición de carrera parece ser corta, y sería difícil explotar esto a propósito.
| Version | Type | Source | Base | Exp | Impact | Vector |
|---|---|---|---|---|---|---|
| 2.0 | Primary | NVD | 4.3 | 8.6 | 2.9 | AV:N/AC:M/Au:N/C:P/I:N/A:N |
| 3.1 | Primary | NVD | 5.9 | 2.2 | 3.6 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N |
| 3.1 | Primary | cve.org | 5.8 | — | — | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N |
| 3.1 | Primary | cve.org | 5.8 | — | — | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N |
| 3.1 | Secondary | GHSA | 5.8 | — | — | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N |
| 3.1 | Secondary | NVD | 5.8 | 1.3 | 4.0 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N |