A2A Python
Monthly
Let me synthesize the analysis for CVE-2026-90790, an SSRF in a2a-python's push notification sender. Key facts: - Product: a2a-python (A2A Python SDK by a2aproject) - Function: _dispatch_notification in src/a2a/server/tasks/base_push_notification_sender.py - Component: Push Notification Sender - Argument push_info.url → SSRF (CWE-918) - Remote exploitation possible - Affected: up to 1.1.3 (1.1.0, 1.1.1, 1.1.2, 1.1.3) - Fix: 1.1.4 (release tag v1.1.4, PRs 1164 and 1169) - CVSS 4.0: 5.3, AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Note PR:L — low privileges required. So authenticated in some sense. - EPSS: not provided - KEV: no - POC: "Reported by VulDB" — no explicit POC. The patch PRs are public, so the fix commit is public. But no explicit POC listed. I'll say "no public exploit identified at time of analysis". - Tags: Python, SSRF, A2A Python Patch: available from vendor, exact version 1.1.4. Interesting detail from diff: the library removed the built-in `push_url_validation_error` helper (SSRF screening) and made the validator opt-in, requiring the deployment to pass `push_url_validator` explicitly. Actually the diff shows the removal of `_ip_is_blocked` and `push_url_validation_error` from base_push_notification_sender.py, and adding a push_url_validator parameter that defaults to None (no library screening). Hmm — that's interesting: the fix in v1.1.4 removed the automatic SSRF screening and replaced it with opt-in validation via `validate_push_notification_url` in src/a2a/utils/push_url_validator.py. That's a bit odd — the fix may be reworked. Actually it looks like the "fix" makes the URL validation a shared utility and requires explicit opt-in. Hmm, this suggests the vulnerability was that the default screening wasn't applied in `_dispatch_notification` at all (the function didn't call the validator), so pushing to a malicious URL would trigger an outbound request to an arbitrary internal address. The PR adds the validator hook into `_dispat
Let me synthesize the analysis for CVE-2026-90790, an SSRF in a2a-python's push notification sender. Key facts: - Product: a2a-python (A2A Python SDK by a2aproject) - Function: _dispatch_notification in src/a2a/server/tasks/base_push_notification_sender.py - Component: Push Notification Sender - Argument push_info.url → SSRF (CWE-918) - Remote exploitation possible - Affected: up to 1.1.3 (1.1.0, 1.1.1, 1.1.2, 1.1.3) - Fix: 1.1.4 (release tag v1.1.4, PRs 1164 and 1169) - CVSS 4.0: 5.3, AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Note PR:L — low privileges required. So authenticated in some sense. - EPSS: not provided - KEV: no - POC: "Reported by VulDB" — no explicit POC. The patch PRs are public, so the fix commit is public. But no explicit POC listed. I'll say "no public exploit identified at time of analysis". - Tags: Python, SSRF, A2A Python Patch: available from vendor, exact version 1.1.4. Interesting detail from diff: the library removed the built-in `push_url_validation_error` helper (SSRF screening) and made the validator opt-in, requiring the deployment to pass `push_url_validator` explicitly. Actually the diff shows the removal of `_ip_is_blocked` and `push_url_validation_error` from base_push_notification_sender.py, and adding a push_url_validator parameter that defaults to None (no library screening). Hmm — that's interesting: the fix in v1.1.4 removed the automatic SSRF screening and replaced it with opt-in validation via `validate_push_notification_url` in src/a2a/utils/push_url_validator.py. That's a bit odd — the fix may be reworked. Actually it looks like the "fix" makes the URL validation a shared utility and requires explicit opt-in. Hmm, this suggests the vulnerability was that the default screening wasn't applied in `_dispatch_notification` at all (the function didn't call the validator), so pushing to a malicious URL would trigger an outbound request to an arbitrary internal address. The PR adds the validator hook into `_dispat