Critical Security Bulletin SC2024-001-619349 Announced

> And other scintillating commentary
Cover Image for Critical Security Bulletin SC2024-001-619349 Announced

TLDR;

Your site is probably impacted, and the fix is easy, so get on it:

Get on it

If all of your content management / standalone instances are locked down already and not accessible to the general public, you can breathe a sigh of relief and take your time to apply the patch.

Every time Sitecore posts a new security bulletin, it leaves the developer community with more questions than answers. This time is no different, so I'll provide my scintillating commentary.

Timeline

  • December 2014: Sitecore 8.0 released, along with the security vulnerability
  • Sometime between 2014 and 2024: 3 letter agencies discover and exploit the vulnerability but keep it secret (kidding but also not kidding)
  • Some time in 2024: Sitecore discovers / is notified about the vulnerability
  • August 2024: Sitecore announces security bulletin SC2024-001-619349
  • Not too long after: hacker(s) blog about it
  • Not too long after that: script kiddies add it to their botnet reconnaissance scripts

Who Is Going To Exploit This?

If your ContentManagement and Standalone instances (anywhere you can manage content) are locked down and inaccessible to the general public, the implication is that you, your colleagues, or the content authors are going to exploit this vulnerability (my bet is on the content authors), and therefore you should apply the patch.

Content authors are the hackers

If you haven't locked down your content management instances yet, the implication is that anyone could exploit this vulnerability, and therefore you should apply the patch.

"But It's Really Hard for My Company / Client To Lock Down Their Sitecore Instances!"

I have seen many CM instances which are still publicly accessible. I recently saw an employee from Sitecore corroborate as such, stating that not as many CM instances are locked down as they would like. In some cases, it may be complicated to lock down instances because of non trivial paywalls.

Otherwise, if your content management instances aren't locked down yet, I recommend pitching your stakeholders on Cloudflare Zero Trust. It's fast and easy to implement and it's free for most smaller Sitecore implementations (the first 50 users are free). No VPN needed. It's a no-brainer.

Can I Get More Info Please?

Please bro give me more info

Sitecore's generic response to the questions "can you provide more details" and "how do I know if I've been hacked?" is:

... it is not possible to provide more information regarding the vulnerability due to security reasons. In particular, this might lead to scenario disclosure and cause a severe impact on the customers.

While understandable, I'm reminded of that scene from American Psycho...

Why not...

However... If the vulnerability is interesting enough, a hacker will blog about it, and then the script kiddies will add it to their botnets within 3 months. That's how it panned out with the last round of vulnerabilities.

What is the Actual Issue?

Having taken a cursory look at the code, the issue appears to be that unauthenticated users can arbitrarily read files using directory traversal via one or more vulnerable SPEAK pipelines. Luckily I've avoided working with SPEAK so far, but my understanding is that Content Editor and Experience Editor use SPEAK components, and developers can also develop their own SPEAK components to extend the CMS in various ways. Given this, it makes sense why the vulnerability is isolated to the Content Management and Standalone roles.

How to Check if You've Been Hacked

I'm not a security expert (yet), but this is what I would do: search the network logs for any suspicious calls to SPEAK endpoints. Look for ../ and its various encoded forms in the URL. It's a good idea to flag/block any request URLs containing such strings, given that it's a common attack vector which could also be used to exploit your custom spaghetti code.

I won't go into further details because I don't want to make it too easy for the script kiddies to find this post, nor do I want to help the AI overlords take over the world by exploiting this vulnerability.

Commentary on "End-Of-Life" Sitecore Versions

Sitecore has no obligation to provide security hotfixes for older versions of Sitecore which are in their "Sustaining Support Phase" (8 years after the initial general availability date). Therefore, it's interesting that Sitecore has provided a fix for those older versions, especially given that 8.0 was released in December 2014. My guess is that it's because the vulnerability is severe enough that it would be bad business not provide a fix for it, but more so because the affected area was isolated enough that the fix was applicable to all versions and thus inexpensive to mitigate.

Conclusion & Learnings

  1. Take this post with a grain of salt because I'm not a security expert (yet)
  2. Ensure that none of your content management instances are accessible to the public
  3. Assume that those who have access to your content management instances are tech savvy manchurian candidates

Stay vigilant,

-MG


More Stories

Cover Image for SPE Script Performance & Troubleshooting

SPE Script Performance & Troubleshooting

> Script never ends or runs too slow? Get in here.

Cover Image for Symposium 2022 Reflections

Symposium 2022 Reflections

> Sitecore is making big changes

Cover Image for Add TypeScript Type Checks to RouteData fields

Add TypeScript Type Checks to RouteData fields

> Inspired by error: Conversion of type may be a mistake because neither type sufficiently overlaps with the other.

Cover Image for How to Run Old Versions of Solr in a Docker Container

How to Run Old Versions of Solr in a Docker Container

> Please don't make me install another version of Solr on my local...

Cover Image for Troubleshooting 502 Responses in Azure App Services

Troubleshooting 502 Responses in Azure App Services

> App Services don't support all libraries

Cover Image for On Mentorship and Community Contributions

On Mentorship and Community Contributions

> Reflections and what I learned as an MVP mentor

Cover Image for Tips for Forms Implementations

Tips for Forms Implementations

> And other pro tips

Cover Image for Don't Ignore the HttpRequestValidationException

Don't Ignore the HttpRequestValidationException

> Doing so could be... potentially dangerous

Cover Image for Hello World

Hello World

> Welcome to the show

Cover Image for Sitecore Symposium 2022

Sitecore Symposium 2022

> What I'm Watching 👀

Cover Image for NextJS: Short URL for Viewing Layout Service Response

NextJS: Short URL for Viewing Layout Service Response

> Because the default URL is 2long4me

Cover Image for Tips for New Sitecore Developers

Tips for New Sitecore Developers

> If I had more time, I would have written a shorter letter

Cover Image for Early Returns in React Components

Early Returns in React Components

> When and how should you return early in a React component?

Cover Image for Script: Boost SIF Certificate Expiry Days

Script: Boost SIF Certificate Expiry Days

> One simple script that definitely won't delete your system32 folder

Cover Image for Content Editor Search Bar Not Working

Content Editor Search Bar Not Working

> Sometimes it works, sometimes not

Cover Image for Super Fast Project Builds with Visual Studio Publish

Super Fast Project Builds with Visual Studio Publish

> For when solution builds take too long

Cover Image for NextJS: Unable to Verify the First Certificate

NextJS: Unable to Verify the First Certificate

> UNABLE_TO_VERIFY_LEAF_SIGNATURE

Cover Image for Ideas For Docker up.ps1 Scripts

Ideas For Docker up.ps1 Scripts

> Because Docker can be brittle

Cover Image for Year in Review: 2022

Year in Review: 2022

> Full steam ahead

Cover Image for On Sitecore Development

On Sitecore Development

> Broadly speaking

Cover Image for On Sitecore Stack Exchange (SSE)

On Sitecore Stack Exchange (SSE)

> What I've learned, what I see, what I want to see

Cover Image for NextJS/JSS Edit Frames Before JSS v21.1.0

NextJS/JSS Edit Frames Before JSS v21.1.0

> It is possible. We have the technology.

Cover Image for Azure PaaS Cache Optimization

Azure PaaS Cache Optimization

> App Services benefit greatly from proper configuration

Cover Image for Tips for Applying Cumulative Sitecore XM/XP Patches and Hotfixes

Tips for Applying Cumulative Sitecore XM/XP Patches and Hotfixes

> It's probably time to overhaul your processes

Cover Image for NextJS: Access has been blocked by CORS policy

NextJS: Access has been blocked by CORS policy

> CORS is almost as much of a nuisance as GDPR popups

Cover Image for Security Series: App Service IP Restrictions

Security Series: App Service IP Restrictions

> How to manage IP rules "at scale" using the Azure CLI

Cover Image for JSS: Reducing Bloat in Multilist Field Serialization

JSS: Reducing Bloat in Multilist Field Serialization

> Because: performance, security, and error-avoidance

Cover Image for JSS + TypeScript Sitecore Project Tips

JSS + TypeScript Sitecore Project Tips

> New tech, new challenges