{"id":"CVE-2019-16779","aliases":["DEBIAN-CVE-2019-16779","DLA-2070-1","EUVD-2019-0799","GHSA-q58g-455p-8vw9","OESA-2021-1420","SUSE-SU-2020:2053-1","UBUNTU-CVE-2019-16779","openSUSE-SU-2020:0036-1","openSUSE-SU-2020:0139-1"],"status":"published","title":"In RubyGem excon, interrupted Persistent Connections May Leak Response Data","description":"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.","severity":{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.01662,"percentile":0.7689,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-362","CWE-664"],"published":"2019-12-16T19:30:17Z","modified":"2026-10-20T10:52:28Z","fixes":[{"ecosystem":"RubyGems","package":"excon","fixed_in":["0.71.0"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"ruby-excon","fixed_in":["0.60.0-2"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"ruby-excon","fixed_in":["0.60.0-2"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"ruby-excon","fixed_in":["0.60.0-2"],"sources":["osv"]},{"ecosystem":"Debian:8","package":"ruby-excon","fixed_in":["0.33.0-2+deb8u1"],"sources":["osv"]},{"ecosystem":"openEuler:20.03-LTS-SP1","package":"rubygem-excon","fixed_in":["0.62.0-3.oe1"],"sources":["osv"]},{"ecosystem":"openEuler:20.03-LTS-SP2","package":"rubygem-excon","fixed_in":["0.62.0-3.oe1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise Module for Containers 12","package":"rubygem-excon","fixed_in":["0.52.0-12.3.8"],"sources":["osv"]},{"ecosystem":"openSUSE:Leap 15.1","package":"rubygem-excon","fixed_in":["0.59.0-lp151.3.3.1"],"sources":["osv"]},{"ecosystem":"SUSE:Package Hub 15 SP1","package":"rubygem-excon","fixed_in":["0.59.0-bp151.4.3.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"RubyGems","package":"excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.71.0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"ruby-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.60.0-2"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"ruby-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.60.0-2"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"ruby-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.60.0-2"}]}]},{"source":"osv","ecosystem":"Debian:8","package":"ruby-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.33.0-2+deb8u1"}]}],"versions":["0.33.0-2"]},{"source":"osv","ecosystem":"RubyGems","package":"excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.71.0"}]}],"versions":["0.0.1","0.0.10","0.0.11","0.0.12","0.0.13","0.0.14","0.0.15","0.0.16","0.0.17","0.0.18","0.0.19","0.0.2","0.0.20","0.0.21","0.0.22","0.0.23","0.0.24","0.0.25","0.0.26","0.0.3","0.0.4","0.0.5","0.0.7","0.0.8","0.1.0","0.1.1","0.1.2","0.1.3","0.1.4","0.10.0","0.10.1","0.11.0","0.12.0","0.13.0","0.13.1","0.13.2","0.13.3","0.13.4","0.14.0","0.14.1","0.14.2","0.14.3","0.15.0","0.15.1","0.15.2","0.15.3","0.15.4","0.15.5","0.16.0","0.16.1","0.16.10","0.16.2","0.16.3","0.16.4","0.16.5","0.16.7","0.16.8","0.16.9","0.17.0","0.18.0","0.18.1","0.18.2","0.18.3","0.18.4","0.18.5","0.19.0","0.19.1","0.19.2","0.19.3","0.19.4","0.19.5","0.2.0","0.2.1","0.2.2","0.2.3","0.2.4","0.2.6","0.2.7","0.2.8","0.20.0","0.20.1","0.21.0","0.22.0","0.22.1","0.23.0","0.24.0","0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.27.0","0.27.1","0.27.2","0.27.3","0.27.4","0.27.5","0.27.6","0.28.0","0.29.0","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.3.5","0.3.6","0.3.7","0.3.8","0.30.0","0.31.0","0.32.0","0.32.1","0.33.0","0.34.0","0.35.0","0.36.0","0.37.0","0.38.0","0.39.0","0.39.1","0.39.2","0.39.3","0.39.4","0.39.5","0.39.6","0.4.0","0.40.0","0.41.0","0.42.0","0.42.1","0.43.0","0.44.0","0.44.1","0.44.2","0.44.3","0.44.4","0.45.0","0.45.1","0.45.2","0.45.3","0.45.4","0.46.0","0.47.0","0.48.0","0.49.0","0.5.0","0.5.1","0.5.2","0.5.3","0.5.4","0.5.5","0.5.6","0.5.7","0.5.8","0.50.0","0.50.1","0.51.0","0.52.0","0.53.0","0.54.0","0.55.0","0.56.0","0.57.0","0.57.1","0.58.0","0.59.0","0.6.0","0.6.1","0.6.2","0.6.3","0.6.4","0.6.5","0.6.6","0.60.0","0.61.0","0.62.0","0.63.0","0.64.0","0.65.0","0.66.0","0.67.0","0.68.0","0.69.0","0.69.1","0.7.0","0.7.1","0.7.10","0.7.11","0.7.12","0.7.2","0.7.3","0.7.4","0.7.5","0.7.6","0.7.7","0.7.8","0.7.9","0.70.0","0.8.0","0.9.0","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6"]},{"source":"osv","ecosystem":"openEuler:20.03-LTS-SP1","package":"rubygem-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.62.0-3.oe1"}]}]},{"source":"osv","ecosystem":"openEuler:20.03-LTS-SP2","package":"rubygem-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.62.0-3.oe1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Module for Containers 12","package":"rubygem-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.52.0-12.3.8"}]}]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"ruby-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.45.1-2"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"ruby-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.54.0-1","0.60.0-1"]},{"source":"osv","ecosystem":"openSUSE:Leap 15.1","package":"rubygem-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.59.0-lp151.3.3.1"}]}]},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP1","package":"rubygem-excon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.59.0-bp151.4.3.1"}]}]}],"products":[{"vendor":"debian","product":"debian_linux"},{"vendor":"excon","product":"excon"},{"vendor":"excon_project","product":"excon"},{"vendor":"opensuse","product":"backports_sle"},{"vendor":"opensuse","product":"leap"}],"references":[{"url":"https://github.com/excon/excon/security/advisories/GHSA-q58g-455p-8vw9","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/excon/excon/commit/ccb57d7a422f020dc74f1de4e8fb505ab46d8a29","tags":["x_refsource_MISC","x_transferred","Patch","fix","web","report"]},{"url":"http://lists.opensuse.org/opensuse-security-announce/2020-01/msg00021.html","tags":["vendor-advisory","x_refsource_SUSE","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://lists.debian.org/debian-lts-announce/2020/01/msg00015.html","tags":["mailing-list","x_refsource_MLIST","x_transferred","Mailing List","Third Party Advisory","advisory","web"]},{"url":"http://lists.opensuse.org/opensuse-security-announce/2020-01/msg00062.html","tags":["vendor-advisory","x_refsource_SUSE","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-16779","tags":["advisory"]},{"url":"https://github.com/rubysec/ruby-advisory-db/blob/master/gems/excon/CVE-2019-16779.yml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-q58g-455p-8vw9"},{"url":"https://security-tracker.debian.org/tracker/CVE-2019-16779","tags":["advisory"]},{"url":"https://github.com/excon/excon","tags":["package"]},{"url":"https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2021-1420","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2020/suse-su-20202053-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1159342","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2019-16779","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2019-16779","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2019-16779","tags":["report"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/ZGWO6G7VLDG32O4P5HJNHJHSO3NC52T5/","tags":["advisory"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/24HLW5E7VDSXDL6W4QB2LMVOF74HLGW7/","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2019-16779","title":"In RubyGem excon, interrupted Persistent Connections May Leak Response Data","description":"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.","status":"published","published":"2019-12-16T19:35:13Z","modified":"2024-08-05T01:24:48.572Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-664"],"updated_at":"2026-11-02T14:32:23.189113Z"}],"euvd":[{"id":"EUVD-2019-0799","description":"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.","status":"published","published":"2019-12-16T19:35:13Z","modified":"2024-08-05T01:24:48Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-03T02:40:31.903592Z"}],"ghsa":[{"id":"GHSA-q58g-455p-8vw9","title":"In RubyGem excon, interrupted Persistent Connections May Leak Response Data","description":"### Impact\nThere 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.\n\n### Patches\nThe problem has been patched in 0.71.0, users should upgrade to this or a newer version (if one exists).\n\n### Workarounds\nUsers can workaround the problem by disabling persistent connections, though this may cause performance implications.\n\n### References\nSee the [patch](https://github.com/excon/excon/commit/ccb57d7a422f020dc74f1de4e8fb505ab46d8a29) for further details.\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [excon/issues](https://github.com/excon/excon/issues)\n* Email us at [geemus+github@gmail.com](mailto:geemus+github@gmail.com)","status":"published","published":"2019-12-16T19:30:17Z","modified":"2023-05-04T19:47:39Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-362","CWE-664"],"updated_at":"2026-11-02T14:36:52.310293Z"}],"nvd":[{"id":"CVE-2019-16779","description":"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.","status":"published","published":"2019-12-16T20:15:15.54Z","modified":"2026-07-28T18:16:09.65Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"primary"},{"version":"2.0","score":4.3,"vector":"AV:N/AC:M/Au:N/C:P/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-664","CWE-362"],"updated_at":"2026-11-02T14:05:40.258829Z"}],"osv":[{"id":"CVE-2019-16779","description":"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.","status":"published","published":"2019-12-16T20:15:15.54Z","modified":"2026-10-20T10:52:28.165036146Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:44:11.673963Z"},{"id":"DEBIAN-CVE-2019-16779","description":"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.","status":"published","published":"2019-12-16T20:15:15.54Z","modified":"2026-09-21T07:02:46.01342902Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:31.867036Z"},{"id":"GHSA-q58g-455p-8vw9","title":"In RubyGem excon, interrupted Persistent Connections May Leak Response Data","description":"### Impact\nThere 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.\n\n### Patches\nThe problem has been patched in 0.71.0, users should upgrade to this or a newer version (if one exists).\n\n### Workarounds\nUsers can workaround the problem by disabling persistent connections, though this may cause performance implications.\n\n### References\nSee the [patch](https://github.com/excon/excon/commit/ccb57d7a422f020dc74f1de4e8fb505ab46d8a29) for further details.\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [excon/issues](https://github.com/excon/excon/issues)\n* Email us at [geemus+github@gmail.com](mailto:geemus+github@gmail.com)","status":"published","published":"2019-12-16T19:30:17Z","modified":"2026-09-10T03:49:25.169523118Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-362","CWE-664"],"updated_at":"2026-11-02T15:46:54.055966Z"},{"id":"OESA-2021-1420","title":"rubygem-excon security update","description":"EXtended http(s) CONnections.\r\n\r\nSecurity Fix(es):\r\n\r\nIn 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.(CVE-2019-16779)","status":"published","published":"2021-11-05T11:04:41Z","modified":"2026-08-18T01:16:07.520733311Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:52:38.987987Z"},{"id":"UBUNTU-CVE-2019-16779","description":"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.","status":"published","published":"2019-12-16T20:15:00Z","modified":"2025-10-24T04:47:53Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N","level":"medium"},{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:54:20.325378Z"},{"id":"DLA-2070-1","title":"ruby-excon - security update","status":"published","published":"2020-01-19T00:00:00Z","modified":"2026-03-09T01:23:22.090516Z","updated_at":"2026-11-02T15:46:10.227108Z"},{"id":"openSUSE-SU-2020:0036-1","title":"Security update for rubygem-excon","description":"This update for rubygem-excon fixes the following issues:\n\nCVE-2019-16779 (boo#1159342):\nFix a race condition around persistent connections, where a connection,\nwhich was interrupted, would leave data on the socket.\nSubsequent requests would then read this data, returning content from the previous response.\n\n","status":"published","published":"2020-01-13T15:21:02Z","modified":"2026-02-04T02:30:48.065087Z","updated_at":"2026-11-02T16:58:31.152112Z"},{"id":"openSUSE-SU-2020:0139-1","title":"Security update for rubygem-excon","description":"This update for rubygem-excon fixes the following issues:\n\nCVE-2019-16779 (boo#1159342):\nFix a race condition around persistent connections, where a connection,\nwhich was interrupted, would leave data on the socket.\nSubsequent requests would then read this data, returning content from the previous response.\n\n\nThis update was imported from the openSUSE:Leap:15.1:Update update project.","status":"published","published":"2020-01-29T16:41:25Z","modified":"2026-02-04T04:36:08.537888Z","updated_at":"2026-11-02T16:58:31.152112Z"},{"id":"SUSE-SU-2020:2053-1","title":"Security update for rubygem-excon","description":"This update for rubygem-excon fixes the following issues:\n\n- CVE-2019-16779: Fixed an information leak in the socket handling for persistent connections (bsc#1159342)\n","status":"published","published":"2020-07-27T08:07:54Z","modified":"2026-02-04T02:56:30.603385Z","updated_at":"2026-11-02T15:53:48.11786Z"}]}}
