Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain poll urlId from public invite link
-
ExploitCall unauthenticated polls.get tRPC procedure
-
ExecutionServer returns attendees array with names/emails
-
ImpactHarvest invitee PII for phishing/targeting
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection PII protection
|
| Exploitation Conditions | Exploitation requires only that the attacker possess a valid poll urlId, which is exposed in the public invite links Rallly generates and shares; no authentication, user interaction, or non-default configuration is needed (unauthenticated remote call to the polls.get tRPC procedure in Rallly before 4.15.0). The disclosure occurs regardless of the poll's privacy settings, so privacy configuration does NOT limit it. The practical limiting factors are narrow: the attacker must know or guess/obtain a specific poll's urlId, only invitees with 'accepted' or 'tentative' status are returned, and the exposed data is limited to names and email addresses (no credentials or account takeover). |
| Impact | This is a genuine but modest-severity information disclosure issue, and the signals are internally consistent. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N, base 5.3) correctly captures a remote, unauthenticated, low-complexity flaw with limited-confidentiality-only impact and no integrity or availability effect. The source-code diff from PR #3247 independently confirms the root cause: the polls.get tRPC procedure selected invites.inviteeName/inviteeEmail and returned them as an 'attendees' array in the public poll payload, exposing accepted/tentative invitee PII to any caller holding the poll's urlId. No EPSS score, no CISA KEV listing, and no public POC are present in the input, so this is not confirmed actively exploited - no public exploit identified at time of analysis. The realistic risk is targeted PII harvesting rather than mass exploitation: an attacker must possess or discover a valid urlId (obtainable from shared/public invite links), and the payoff is names and emails, not credentials or code execution. Net: a legitimate privacy fix worth prioritizing for deployments handling sensitive invitee lists, but not an emergency relative to RCE- or auth-bypass-class issues. |
| Exploit ScenarioDerived | An attacker obtains a Rallly poll's urlId from a publicly shared or forwarded invite link, then calls the unauthenticated polls.get tRPC procedure for that poll. The response includes the scheduled event's attendee array containing invitee names and email addresses, regardless of the poll's privacy settings, letting the attacker harvest PII for phishing or targeting. No public exploit code is identified, but the attack is trivial (AV:N/AC:L/PR:N) and requires only a normal API request. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 16, 2026
Unauthenticated information disclosure in Rallly before 4.15.0 allows remote attackers who possess a poll's urlId to retrieve the names and email addresses of scheduled-event invitees through the polls.get tRPC procedure, regardless of the poll's privacy settings. The urlId is embedded in the public invite links Rallly generates and shares, so no credentials, user interaction, or non-default configuration are needed; CVSS 3.1 rates this 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N). There is no public exploit code identified and no indication of active exploitation at time of analysis, and the vendor has released a fix in version 4.15.0.
RemediationAI
Upgrade to Rallly 4.15.0 or later; this is the vendor-released patch and the version in which the invitations select and the attendees mapping were removed from the polls.get response (see the release at https://github.com/lukevella/rallly/releases/tag/v4.15.0 and the fix in PR https://github.com/lukevella/rallly/pull/3247, commit 0db11a2cd9e48656d08773e4be6de0e7df584a00). Self-hosted operators who cannot immediately take the 4.15.0 image can backport the source change directly by dropping the scheduledEvent.invites Prisma select and the attendees array from the polls.get serializer, and by removing attendees from the GetPollApiResponse type; this is low-risk because the removed fields are not used by any legitimate public client, though any internal consumer that relies on the attendees array would need to move to an authenticated organizer endpoint. Because the exposure is gated only by knowledge of the poll urlId, which is printed in every public invite link, there is no configuration-based mitigation that closes the gap - restricting or disabling the public poll view would break the product's core sharing workflow and is not recommended - and urlIds cannot be usefully rotated without invalidating links already distributed to participants. After patching, treat the invitee names and email addresses returned during the exposure window as potentially harvested and factor them into any phishing or privacy-notification decisions; the advisory at https://www.vulncheck.com/advisories/rallly-before-4.15.0-information-disclosure-via-polls-get can be cited for tracking.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Rallly is a Next.js/TypeScript scheduling and polling application that exposes its backend through tRPC procedures defined under apps/web/src/trpc/routers/polls.ts, with Prisma used as the data layer. The polls.get procedure is reachable by unauthenticated callers because polls are designed to be viewable via public links keyed by a urlId. In the vulnerable code path, the Prisma query for a poll eagerly selected the related scheduledEvent.invites records (id, inviteeName, inviteeEmail, inviteeTimeZone, status) and then mapped them into an 'attendees' array containing name, email, and status on the returned poll object, filtering for invites with 'accepted' or 'tentative' status. Because that array was spread into the public response payload alongside the rest of the poll fields, the invitee PII was serialized to any caller who could supply the poll's urlId. This is a classic over-fetching / excessive data exposure defect in the CWE-359 class (Exposure of Private Personal Information to an Unauthorized Actor): the endpoint was functionally behaving as intended for authenticated organizers but carried organizer-only fields into a public-facing serializer. The upstream fix (PR 3247, commit 0db11a2cd9e48656d08773e4be6de0e7df584a00) removes the invites relation from the public query, deletes the attendees mapping, and explicitly destructures scheduledEvent out of the response so the raw booking row is no longer duplicated into the public payload; the corresponding GetPollApiResponse type definition was also corrected to drop the attendees shape.
Know when Rallly gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Remote unauthenticated call needing only a shareable urlId (AV:N/AC:L/PR:N/UI:N); discloses limited PII (names/emails) so C:L, with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Rallly before 4.15.0 contains an information disclosure vulnerability in the polls.get tRPC procedure that returns scheduled-event invitee names and email addresses to unauthenticated callers. Attackers can access a poll's urlId from public invite links to retrieve sensitive invitee information regardless of privacy settings.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Rallly is an open-source scheduling and collaboration tool. Rated critical severity (CVSS 9.8), this vulnerability is re
Rallly is an open-source scheduling and collaboration tool. Rated critical severity (CVSS 9.1), this vulnerability is re
Rallly is an open-source scheduling and collaboration tool. Rated high severity (CVSS 8.1), this vulnerability is remote
Rallly is an open-source scheduling and collaboration tool. Rated high severity (CVSS 8.1), this vulnerability is remote
Rallly is an open-source scheduling and collaboration tool. Rated high severity (CVSS 8.1), this vulnerability is remote
Rallly is an open-source scheduling and collaboration tool. Rated high severity (CVSS 7.1), this vulnerability is remote
Rallly is an open-source scheduling and collaboration tool. Rated high severity (CVSS 7.1), this vulnerability is remote
Rallly is an open-source scheduling and collaboration tool. Rated medium severity (CVSS 6.5), this vulnerability is remo
Rallly is an open-source scheduling and collaboration tool. Rated medium severity (CVSS 6.5), this vulnerability is remo
Rallly is an open-source scheduling and collaboration tool. Rated medium severity (CVSS 6.5), this vulnerability is remo
Rallly is an open-source scheduling and collaboration tool. Rated medium severity (CVSS 6.5), this vulnerability is remo
Cross-site scripting (XSS) in lukevella Rallly up to version 4.7.4 allows authenticated users to inject malicious script
EUVD-2026-80811
GHSA-36pr-h5jw-r82m
NVD
CVE.org
EPSS
Exploit-DB