{"id":11240,"date":"2026-01-28T15:24:54","date_gmt":"2026-01-28T15:24:54","guid":{"rendered":"https:\/\/techtrendfeed.com\/?p=11240"},"modified":"2026-01-28T15:24:54","modified_gmt":"2026-01-28T15:24:54","slug":"cal-com-damaged-entry-controls-result-in-account-takeover-and-knowledge-publicity","status":"publish","type":"post","link":"https:\/\/techtrendfeed.com\/?p=11240","title":{"rendered":"Cal.com Damaged Entry Controls Result in Account Takeover and Knowledge Publicity"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>Cal.com, an open-source scheduling platform and developer-friendly various to Calendly, not too long ago patched a set of crucial vulnerabilities that uncovered consumer accounts and delicate reserving knowledge to attackers. <\/p>\n<p>The issues, found by Gecko\u2019s AI safety engineer in Cal.com Cloud, allowed full account takeover for any consumer and unauthorized entry to bookings throughout organizations, together with personal conferences and attendee metadata.<\/p>\n<p>Gecko used its AI-augmented static evaluation platform to autonomously map Cal.com\u2019s codebase, uncovering advanced multi-step vulnerability chains in only a few hours points that had beforehand evaded each present tooling and handbook penetration testing. <\/p>\n<p>In line with Gecko, that is precisely the category of labor they intention to democratize: turning AI-augmented safety experience into one thing each developer and safety crew can use to safe software program at scale.<\/p>\n<p>The investigation centered on damaged entry management, a class that continues to dominate real-world software safety. <\/p>\n<p>OWASP\u2019s 2025 Prime 10 <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.gecko.security\/blog\/caldotcom-broken-access-controls\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">stories<\/a> that 100% of examined purposes had some type of damaged entry management, underscoring how pervasive these points are even in security-conscious, open-source tasks with giant contributor communities like Cal.com.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-account-takeover-via-organization\"><strong>Account Takeover by way of Group<\/strong><\/h2>\n<p>Essentially the most extreme problem was an authentication bypass within the group signup circulation that enabled attackers to hijack present Cal.com accounts utilizing solely an electronic mail tackle and a company invite hyperlink.<\/p>\n<p>An attacker generates a shareable invite hyperlink for a company they personal, producing a URL like\u00a0<code>https:\/\/app.cal.com\/signup?token=&lt;64-char-hex-token&gt;<\/code>.\u00a0<\/p>\n<p>The vulnerability stemmed from three chained logic flaws within the signup course of:<\/p>\n<ol class=\"wp-block-list\">\n<li>The <code>usernameCheckForSignup<\/code> operate defaulted to <code>obtainable: true<\/code> and skipped crucial validation for customers who had been already members of any group. As a substitute of rejecting present verified customers, it handled group members as if their electronic mail had been free to register, permitting \u201cre-signup\u201d of lively accounts.<\/li>\n<li>A second validation step solely checked for present customers inside the attacker\u2019s group scope. The question filtered by <code>organizationId<\/code>, asking successfully, \u201cDoes this electronic mail exist in my org?\u201d as a substitute of worldwide. In consequence, verified customers in different organizations had been incorrectly handled as new.<\/li>\n<li>Lastly, the signup handler executed a <code>prisma.consumer.upsert()<\/code> with <code>the place: { electronic mail }<\/code> towards a schema the place emails are globally distinctive. When the 2 flawed validations handed, this upsert matched the sufferer\u2019s present file and up to date it, overwriting their password hash, setting a brand new username, marking the e-mail as verified, and reassigning <code>organizationId<\/code> to the attacker\u2019s group.<\/li>\n<\/ol>\n<p>In observe, the assault was trivial: an attacker created or used an present group, generated an invitation hyperlink resembling <code>https:\/\/app.cal.com\/signup?token=<token\/><\/code>, and submitted the signup type with the sufferer\u2019s electronic mail and a brand new password. <\/p>\n<p>The signup succeeded, the sufferer was silently locked out, and the attacker gained full entry to the account, together with calendar integrations, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/gbhackers.com\/hackers-abuse-compromised-oauth-tokens\/\" target=\"_blank\" rel=\"noreferrer noopener\">OAuth tokens<\/a>, bookings, and API keys. No notification was despatched to the sufferer.<\/p>\n<p>Cal.com fastened this in model 6.0.8 by including strict consumer existence validation earlier than processing signups by way of invite tokens.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-bookings-and-calendar-endpoints\"><strong>Bookings and Calendar Endpoints<\/strong><\/h2>\n<p>A second class of vulnerabilities uncovered all reserving information and consumer knowledge by way of misconfigured <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/gbhackers.com\/how-an-api-platform-simplifies-security-data-integration\/\" target=\"_blank\" rel=\"noreferrer noopener\">API routes<\/a> and IDOR-style flaws.<\/p>\n<p>Gecko\u2019s indexing course of recognized that Cal.com\u2019s API v1 used underscore-prefixed information (<code>_get.ts<\/code>, <code>_post.ts<\/code>, <code>_patch.ts<\/code>, <code>_delete.ts<\/code>) as inner route handlers. <\/p>\n<p>The primary <code>index.ts<\/code> entry level accurately utilized authorization middleware earlier than delegating to those handlers. Nevertheless, resulting from how Subsequent.js dealt with routing, the underscore information had been additionally uncovered as direct routes.<\/p>\n<p>By instantly calling these inner routes, any authenticated consumer with a legitimate v1 <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/gbhackers.com\/xai-api-key-leak-exposes-proprietary-language-models\/\" target=\"_blank\" rel=\"noreferrer noopener\">API key<\/a> may bypass the authorization middleware fully. This allowed studying and deleting bookings platform-wide, exposing:<\/p>\n<ul class=\"wp-block-list\">\n<li>Attendee names, emails, and private particulars.<\/li>\n<li>Assembly metadata and calendar info.<\/li>\n<li>Full reserving histories throughout customers and organizations.<\/li>\n<\/ul>\n<p>The identical sample affected vacation spot calendar endpoints, enabling deletion of any consumer\u2019s vacation spot calendar by ID, silently breaking routing guidelines and doubtlessly disrupting enterprise workflows.<\/p>\n<p>Cal.com mitigated this by updating its Subsequent.js middleware to explicitly block direct entry to inner route handlers resembling <code>\/_get<\/code>, <code>\/_post<\/code>, <code>\/_patch<\/code>, <code>\/_delete<\/code>, and <code>\/_auth-middleware<\/code>, returning HTTP 403 for any direct requests to those paths.<\/p>\n<p>These findings underline how small, localized bugs in authentication and authorization logic can chain into full compromise of accounts and delicate knowledge. <\/p>\n<p>For Cal.com, the affect reached from full account takeover together with admins and paid customers to publicity of extremely delicate PII embedded in bookings.<\/p>\n<p>The incident reinforces the necessity for protection in depth: strict world id checks, constant authorization enforcement on each path, and cautious dealing with of framework routing conduct. <\/p>\n<p>It additionally highlights the position of AI-augmented safety tooling. Gecko\u2019s AI SAST engine, which builds a semantic index of the codebase and causes about knowledge flows and enterprise logic, was key in surfacing these advanced chains shortly.<\/p>\n<p>Gecko is at the moment making its platform obtainable in a free preview, inviting builders, vulnerability researchers, and safety engineers to experiment with AI-assisted code safety and convey this stage of study into their very own pipelines.<\/p>\n<p class=\"has-text-align-center has-background\" style=\"background:linear-gradient(135deg,rgb(238,238,238) 100%,rgb(169,184,195) 100%)\"><strong>Observe us on\u00a0<a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/news.google.com\/publications\/CAAqKAgKIiJDQklTRXdnTWFnOEtEV2RpYUdGamEyVnljeTVqYjIwb0FBUAE?hl=en-IN&amp;gl=IN&amp;ceid=IN%3Aen\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Google Information<\/a>,\u00a0<a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/company\/cyber-threat-intel\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">LinkedIn<\/a>, and\u00a0<a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/x.com\/The_Cyber_News\" target=\"_blank\" rel=\"noreferrer noopener\">X<\/a>\u00a0to Get Prompt Updates and Set GBH as a Most well-liked Supply in\u00a0<a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.google.com\/preferences\/source?q=https:\/\/gbhackers.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Google<\/a>.<\/strong><\/p>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Cal.com, an open-source scheduling platform and developer-friendly various to Calendly, not too long ago patched a set of crucial vulnerabilities that uncovered consumer accounts and delicate reserving knowledge to attackers. The issues, found by Gecko\u2019s AI safety engineer in Cal.com Cloud, allowed full account takeover for any consumer and unauthorized entry to bookings throughout organizations, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":11242,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[58],"tags":[539,1323,7598,7597,6991,157,6258,1338,1814],"class_list":["post-11240","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cybersecurity","tag-access","tag-account","tag-broken","tag-cal-com","tag-controls","tag-data","tag-exposure","tag-lead","tag-takeover"],"_links":{"self":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/11240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11240"}],"version-history":[{"count":1,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/11240\/revisions"}],"predecessor-version":[{"id":11241,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/11240\/revisions\/11241"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/media\/11242"}],"wp:attachment":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<!-- This website is optimized by Airlift. Learn more: https://airlift.net. Template:. Learn more: https://airlift.net. Template: 69d9690a190636c2e0989534. Config Timestamp: 2026-04-10 21:18:02 UTC, Cached Timestamp: 2026-06-22 08:18:48 UTC -->