{"schemaVersion":3,"id":"CVE-2021-29431","aliases":["GHSA-9jhm-8m8c-c3f4","PYSEC-2021-22"],"status":"published","duplicateOf":null,"title":null,"description":"Sydent is a reference Matrix identity server. Sydent can be induced to send HTTP GET requests to internal systems, due to lack of parameter validation or IP address blacklisting. It is not possible to exfiltrate data or control request headers, but it might be possible to use the attack to perform an internal port enumeration. This issue has been addressed in in 9e57334, 8936925, 3d531ed, 0f00412. A potential workaround would be to use a firewall to ensure that Sydent cannot reach internal HTTP resources.","dates":{"published":"2021-04-15T21:00:16.000Z","modified":"2024-08-03T22:02:51.856Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":7.7,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":7.7,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Pypi","score":6.3,"severity":"medium","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N","exploitability":null,"impact":null,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Pypi","score":7.7,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N","exploitability":7.9,"impact":6.7,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":6.5,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","exploitability":null,"impact":null,"computed":false},{"version":"2.0","versionLabel":"v2.0","source":"NVD","score":4,"severity":"medium","vector":"AV:N/AC:L/Au:S/C:P/I:N/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.01194,"percentile":0.6757,"severity":"low","asOf":"2026-10-19T00:00:00.000Z","change":{"pp":0,"baselineDate":"2026-09-19T00:00:00.000Z","baselineScore":0.01194},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.01194,"percentile":0.6757}],"last30":[{"date":"2026-09-19T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.01194,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.01194,"percentile":0.6757}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-20","name":"Improper Input Validation","description":"The product receives input or data, but it does\n        not validate or incorrectly validates that the input has the\n        properties that are required to process the data safely and\n        correctly.","type":"weakness","status":"Stable","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/20.html"},{"id":"CWE-918","name":"Server-Side Request Forgery (SSRF)","description":"The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/918.html"}],"affected":[{"vendor":"matrix-org","product":"sydent","name":"sydent","label":"sydent","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 2.3.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.3.0","eol":null,"hubHref":"/vendor/matrix-org/sydent"},{"vendor":"matrix","product":"sydent","name":"sydent","label":"sydent","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 2.3.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.3.0","eol":null,"hubHref":"/vendor/matrix/sydent"},{"vendor":"PyPI","product":"matrix-sydent","name":"matrix-sydent","label":"matrix-sydent","ecosystem":"PyPI","cpePart":null,"purl":"pkg:pypi/matrix-sydent","purlType":"pypi","versions":[{"text":"< 8936925f561b0c352c2fa922d5097d7245aad00a","noFixRecorded":false,"fixedIn":null},{"text":"< 2.3.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 8936925f561b0c352c2fa922d5097d7245aad00a | < 2.3.0","eol":null,"hubHref":null}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://pypi.org/project/matrix-sydent/","label":"pypi.org/project/matrix-sydent/","hostname":"pypi.org","tags":["X Refsource MISC","PACKAGE","Product","Third Party Advisory"]},{"url":"https://github.com/matrix-org/sydent/releases/tag/v2.3.0","label":"github.com/matrix-org/sydent/releases/tag/v2.3.0","hostname":"github.com","tags":["X Refsource MISC","WEB","Release Notes","Third Party Advisory"]},{"url":"https://github.com/matrix-org/sydent/security/advisories/GHSA-9jhm-8m8c-c3f4","label":"github.com/matrix-org/sydent/security/advisories/GHSA-9jhm-8m8c-c3f4","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Advisory","Patch","Third Party Advisory"]},{"url":"https://github.com/matrix-org/sydent/commit/9e573348d81df8191bbe8c266c01999c9d57cd5f","label":"github.com/matrix-org/sydent/commit/9e573348d81df8191bbe8c266c01999c9d57cd5f","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX","Patch","Third Party Advisory"]},{"url":"https://github.com/matrix-org/sydent/commit/8936925f561b0c352c2fa922d5097d7245aad00a","label":"github.com/matrix-org/sydent/commit/8936925f561b0c352c2fa922d5097d7245aad00a","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX","Patch","Third Party Advisory"]},{"url":"https://github.com/matrix-org/sydent/commit/3d531ed50d2fd41ac387f36d44d3fb2c62dd22d3","label":"github.com/matrix-org/sydent/commit/3d531ed50d2fd41ac387f36d44d3fb2c62dd22d3","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX","Patch","Third Party Advisory"]},{"url":"https://github.com/matrix-org/sydent/commit/0f00412017f25619bc36c264b29ea96808bf310a","label":"github.com/matrix-org/sydent/commit/0f00412017f25619bc36c264b29ea96808bf310a","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX","Patch","Third Party Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-29431","label":"nvd.nist.gov/vuln/detail/CVE-2021-29431","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/matrix-org/sydent","label":"github.com/matrix-org/sydent","hostname":"github.com","tags":["PACKAGE"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/matrix-sydent/PYSEC-2021-22.yaml","label":"github.com/pypa/advisory-database/tree/main/vulns/matrix-sydent/PYSEC-2021-22.yaml","hostname":"github.com","tags":["WEB"]},{"url":"https://pypi.org/project/matrix-sydent","label":"pypi.org/project/matrix-sydent","hostname":"pypi.org","tags":["WEB"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2021-04-15T21:00:16.000Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2024-08-03T22:02:51.856Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":31,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-19T22:21:35.143Z","stale":false,"partial":false}}