• Security Incident?
  • +31 88 000 2000
  • +31 88 000 2020
  • support@access42.nl
Access42 logoAccess42 logoAccess42 logoAccess42 logo
  • HOME
  • DIENSTEN
    • CYBER DEFENSE CENTER
      • Prepare
      • Detect
      • Prevent
      • Respond
      • Predict
    • DIENSTEN
      • Incident Response
      • Penetratietest (Pentest)
      • Red Teaming aanval
      • Cyber Security Assessment (CSA)
    • MANAGED SERVICES / OPLOSSINGEN
      • CyberTIM
        • CyberTIM Protect
        • CyberTIM Aware
        • CyberTIM Detect voor Microsoft 365
        • Container Security CSI.2030
      • Nessus
      • Active Directory Security
      • Vulnerability Management
        • Vulnerability Management
        • Web App Scanning
        • OT Security
      • Managed Detectie & Response (MDR / XDR)
        • Endpoint Detection & Response (EDR)
        • Mobile Threat Defense
        • Klaar om de controle over Microsoft (Office) 365-beveiliging terug te nemen?
        • AI-powered netwerk detectie en response
        • API Security
      • Phishing & Triage
      • Thinkst Canary
      • E-Mail Security, Continuity & Archiving
        • E-mail Security 3.0
      • Brand Exploit Protect
      • Delinea – Privileged Access Management
      • Security Monitoring / SOC
  • ACCESS42
    • Over ons
      • ISO/IEC 27001 certificering
      • Disclaimer & Privacy Policy
      • Klachtenprocedure
    • Werken bij Access42
    • Partners
  • EVENTS
  • NIEUWS
  • CONTACT
    • Contact
    • Inschrijven Nieuwsbrief
    • Incident Response
            No results See all results
            BUY NESSUS
            ✕
                      No results See all results
                      • Home
                      • Nieuws
                      • Nieuws
                      • Spring4Shell: Spring Framework Remote Code Execution Vulnerability

                      Spring4Shell: Spring Framework Remote Code Execution Vulnerability

                      31 maart 2022
                      Categories
                      • Nieuws
                      Tags

                      Update 31-03-2022

                      • 14:00. Spring Framework-versies 5.3.18 en 5.2.20, die de kwetsbaarheid aanpakken, zijn nu beschikbaar. Het releaseproces voor Spring Boot is in volle gang.
                      • 14:10. Dit zijn de vereisten voor het specifieke scenario uit het rapport:
                        • JDK 9 of hoger
                        • Apache Tomcat als de Servlet-container
                        • Verpakt als WAR
                        • De aard van de kwetsbaarheid is echter algemener en er kunnen andere manieren zijn om deze te misbruiken die nog niet zijn gemeld.
                      • 14:33. Hoofdstuk “Meer informatie” toegevoegd

                      Update 01-04-2022

                      • 07:21. Er zijn aanvullende details verstrekt, waaronder vaste versies, de CVE-identificatie, aanvullende details over de vereisten die nodig zijn om de kwetsbaarheid uit te buiten, evenals details over Tenable-productdekking.

                      Access42 volgt de updates met betrekking tot Spring4Shell op de voet. Naarmate er meer informatie beschikbaar komt, zullen we deze blog bijwerken met aanvullende details over de kwetsbaarheid, inclusief eventuele detectie mogelijkheden.

                      Spring4Shell is de bijnaam van een zero-day kwetsbaarheid in het Spring Core Framework. Het Spring Core Framework is een set van Java libraries waarmee op gestructureerde wijze applicaties kunnen worden ontwikkeld die vervolgens zowel standalone kunnen draaien of in webapplicatie-omgevingen als Tomcat.

                      bronnen: Access42, Tenable, Lunasec, NCSC, Preatorian

                      TL;DR

                      Er bestaan twee RCE’s en er worden online drie vectoren besproken (waarvan er één niet bekend staat als exploiteerbaar op afstand).

                      • Bevestigd: “Spring4Shell” in Spring Core (CVE-2022-22965), bevestigd door verschillende bronnen, maakt gebruik van klasse-injectie (zeer ernstig),
                      • Bevestigd: CVE-2022-22963 in Spring Cloud Function (minder ernstig),
                      • Onbevestigd: Een derde zwakte die aanvankelijk werd besproken als een zwakte die RCE via deserialisatie mogelijk maakt, maar die niet kan worden uitgebuit (momenteel niet ernstig).

                       Er zijn updates beschikbaar voor Spring4Shell in Spring versions 5.3.18 and 5.2.20 en een officiële CVE is gepubliceerd als CVE-2022-22965.

                      Mitigatie (voor zover bekend)

                      Spring Framework-versies 5.3.18 en 5.2.20, die de kwetsbaarheid aanpakken, zijn al beschikbaar op Maven Central. Als u kunt upgraden, hebt u de onderstaande tijdelijke oplossingen niet nodig.

                      Als je Spring Core gebruikt, is dit momenteel de enige bekende remedie voor het patchen van deze aanval. Er is ten tijde van het publiceren van deze blog geen patch beschikbaar (vanaf 3-31-2022 @ 9:30am).

                      Volgens de Praetorian post die de aanwezigheid van een RCE in Spring Core bevestigt, is momenteel de aanbevolen aanpak om DataBinder te patchen een blacklist toe te voegen van kwetsbare veldpatronen die nodig zijn voor exploitatie.

                      In Spring Framework heeft DataBinder functionaliteit om bepaalde patronen te weigeren. Als tijdelijke oplossing voor deze kwetsbaarheid raden wij aan om een ControllerAdvice component te maken (een Spring component die gedeeld wordt door Controllers) en gevaarlijke patronen aan de denylist toe te voegen. Een voorbeeld snippet is hieronder te zien:

                      import org.springframework.core.Ordered;
                      
                      import org.springframework.core.annotation.Order;
                      
                      import org.springframework.web.bind.WebDataBinder;
                      
                      import org.springframework.web.bind.annotation.ControllerAdvice;
                      
                      import org.springframework.web.bind.annotation.InitBinder;
                      
                      
                      
                      
                      @ControllerAdvice
                      
                      @Order(10000)
                      
                      public class BinderControllerAdvice {
                      
                          @InitBinder
                      
                          public void setAllowedFields(WebDataBinder dataBinder) {
                      
                               String[] denylist = new String[]{"class.*", "Class.*", "*.class.*", "*.Class.*"};
                      
                               dataBinder.setDisallowedFields(denylist);
                      
                          }
                      
                      }

                      Frequently Asked Questions rondom Spring4Shell

                      Is er een CVE bekend voor deze kwetsbaarheid?

                      Op het moment dat dit blogbericht werd gepubliceerd, was er nog geen CVE-ID bekend voor deze kwetsbaarheid.

                      Is Spring4Shell verwant aan Log4Shell?

                      Hoewel de naam zelf is geïnspireerd door Log4Shell (CVE-2021-44228), zijn de twee niet verwant.

                      Is er een patch beschikbaar voor Spring4Shell?

                      Op het moment dat deze blog post werd gepubliceerd, was er nog geen patch beschikbaar voor deze kwetsbaarheid. Vanaf 31 maart zijn Spring Framework versies 5.3.18 en 5.2.20 vrijgegeven. Volgens de kwetsbaarheidsmelding van Spring, zijn Spring Boot versie 2.6.6 en 2.5.12 (beide afhankelijk van Spring Framework 5.3.18) vrijgegeven.

                      Hoe ernstig is Spring4Shell?

                      Een aanvaller zou Spring4Shell kunnen misbruiken door een speciaal bewerkt verzoek naar een kwetsbare server te sturen. Uitbuiting van Spring4Shell vereist echter bepaalde vereisten, terwijl de oorspronkelijke Log4Shell-kwetsbaarheid alle versies van Log4j 2 trof met de standaardconfiguratie.

                      Volgens Spring zijn de volgende vereisten opgenomen in het kwetsbaarheidsrapport, maar het bericht waarschuwt dat er andere manieren kunnen zijn waarop dit kan worden uitgebuit, zodat dit op dit moment mogelijk geen volledige lijst van vereisten is:

                      • Java Development Kit (JDK) 9 of hoger
                      • Apache Tomcat als de Servlet container
                      • Verpakt als een WAR
                      • Spring-webmvc of Spring-webflux afhankelijkheid

                      Meerdere onderzoekers publiceren bevindingen in de vereisten voor exploitatie op Twitter:

                      We're taking a look into the "possible RCE in Spring Core" that's been circulating around. From looking at the commits in Spring it seems like it has many mitigating factors, but we'll follow up with more details soon. https://t.co/u58FfMB5di

                      — LunaSec (@LunaSecIO) March 30, 2022

                      The prerequisites:
                      – Uses Spring Beans
                      – Uses Spring Parameter Binding
                      – Spring Parameter Binding must be configured to use a non-basic parameter type, such as POJOs
                      All this smells of "How can I make an app that's exploitable" vs. "How can I exploit this thing that exists?"

                      — Will Dormann (@wdormann) March 30, 2022

                      Het is onduidelijk hoe “standaard” deze vereisten zijn en hoe vaak ze voorkomen. Aangezien deze noodzakelijk zijn voor exploitatie, verwachten wij dat de impact van Spring4Shell veel beperkter zal zijn dan die van Log4Shell.

                      Welke versies van het Spring Core Framework zijn kwetsbaar?

                      Vanaf 31 maart zijn Spring versies 5.3.18 en 5.2.20 uitgebracht om CVE-2022-22965 aan te pakken. Op het moment dat deze blog werd geüpdatet was nog niet expliciet vermeld welke versies zijn getroffen, maar we hopen snel meer duidelijkheid te hebben en zullen deze post bijwerken met aanvullende informatie.

                      Is mijn applicatie kwetsbaar als ik een JDK 9+ en Spring Framework gebruik?

                      Het gebruik van JDK 9+ en Spring Framework samen betekent niet noodzakelijkerwijs dat je kwetsbaar bent voor Spring4Shell, aangezien de applicatie zodanig geconfigureerd moet zijn dat een aanvaller het lek kan misbruiken. Spring heeft bijvoorbeeld aanbevolen dat ontwikkelaars de eigenschap allowedFields specificeren wanneer ze de DataBinder class gebruiken. Onderzoekers hebben bevestigd dat het niet specificeren van deze eigenschap een aanvaller in staat kan stellen Spring4Shell te gebruiken tegen een kwetsbare applicatie.

                      Wat heeft Spring4Shell te maken met CVE-2010-1622?

                      Onderzoekers van Praetorian hebben bevestigd dat Spring4Shell een patch bypass is van CVE-2010-1622, een code-injectie lek in het Spring Core Framework dat naar verluidt bijna 12 jaar geleden is opgelost. De onderzoekers zeggen echter dat de oplossing voor CVE-2010-1622 onvolledig was en dat er een nieuw pad is om dit oude lek uit te buiten.

                      Is Spring4Shell related to CVE-2022-22963?

                      Nee, dit zijn twee volledig ongerelateerde kwetsbaarheden. CVE-2022-22963 is een kwetsbaarheid in de Spring Cloud Function, een serverless framework voor het implementeren van business logica via functies. Een advisory voor CVE-2022-22963 werd gepubliceerd op 29 maart en patches voor Spring Cloud Function zijn beschikbaar.

                      Omdat er ten tijde van de openbaarmaking geen CVE voor Spring4Shell was toegewezen, werd Spring4Shell ten onrechte geassocieerd met CVE-2022-22963.

                      Is er Proof of Concept (PoC) code beschikbaar?

                      Ja, er zijn meerdere werkende proof-of-concept (PoC) exploits beschikbaar voor zowel Spring4Shell als CVE-2022-22963.

                      Identificeren van kwetsbare systemen

                      Een lijst van Tenable-plugins om deze kwetsbaarheid te identificeren, is hier te vinden.

                      Voor Nessus plugin ID 159374, “Spring Framework < 5.2.20 / 5.3.x < 5.3.18 Remote Code Execution (CVE-2022-22965),” moeten gebruikers de instelling “Show potential false alarms”, ook bekend als paranoïde modus, inschakelen in hun scanbeleid om deze plugin in een scan in te schakelen. Daarnaast moet ook de instelling “Peform thorough tests” zijn ingeschakeld.

                      Wij raden ook aan alleen deze specifieke plugin in een paranoïde scan in te schakelen. Scanbeleid dat is geconfigureerd om alle plugins in te schakelen zal een toename in het aantal triggers zien, omdat het alle paranoïde plugins tijdens de scan zal omvatten. Hieronder een overzicht van de instellingen voor Nessus en Tenable.io:

                      Enabling Paranoid and Thorough Tests Modes

                      To enable this setting for Nessus and Tenable.io users:

                      1. Click Assessment > General > Accuracy
                      2. Enable the “Show potential false alarms” option
                      3. Enable the “Perform thorough tests (may disrupt your network or impact scan speed)” option

                      To enable this setting for Tenable.sc (formerly SecurityCenter) users:

                      1. Click Assessment > Accuracy
                      2. Click the drop-down box and select “Paranoid (more false alarms)”
                      3. Click the drop-down box and select “Perform thorough tests (may disrupt your network or impact scan speed)”

                      Plugin ID 159374 is available in feed serial 202203311743.

                      For Web Application Scanning customers, we’ve updated our Backdoor Detection plugin to detect the tomcatwar.jsp shell file.

                      Meer informatie

                      • Praetorian Blog on Spring4Shell
                      • LunaSec Blog on Spring4Shell
                      • Spring Blog on Spring4Shell
                      • NCSC Advisory
                      Delen
                      0

                      Related posts

                      8 september 2023

                      IDM Europe


                      Read more
                      6 september 2023

                      Security Awareness beschermt je niet tegen aanvallers! 


                      Read more
                      29 augustus 2023

                      Hoe ChatGPT cyberdreigingen transformeert


                      Read more
                      Spring4Shell: Spring Framework Remote Code Execution Vulnerability
                      Spring4Shell: Spring Framework Remote Code Execution Vulnerability

                      Spring4Shell: Spring Framework Remote Code Execution Vulnerability

                      Access42 B.V.
                      Leusderend 38
                      3832RC LEUSDEN

                      CyberDefense Center
                      • Prepare
                      • Detect
                      • Prevent
                      • Respond
                      • Predict
                      Diensten
                      • Phishing as a Service
                      • Penetratietesten
                      • Red Teaming
                      • Nessus
                      • Container Security
                      • OT Security
                      • Vulnerability Management
                      • AI-powered network detection and response
                      • E-mail security
                      • Alle Diensten
                      Over ons
                      • Over Access42
                      • Kernwaarden
                      • Missie en Visie
                      • Werken bij Access42
                      • Partners
                      • Disclaimer en Privacy Policy
                      • Responsible Disclosure
                      Get in touch

                      © 2023 Access42 | Cybersecurity. All Rights Reserved.
                      We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
                      Cookie SettingsAccept All
                      Manage consent

                      Privacy Overview

                      This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
                      Necessary
                      Altijd ingeschakeld
                      Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
                      CookieDuurOmschrijving
                      _GRECAPTCHA5 months 27 daysThis cookie is set by Google. In addition to certain standard Google cookies, reCAPTCHA sets a necessary cookie (_GRECAPTCHA) when executed for the purpose of providing its risk analysis.
                      cookielawinfo-checkbox-advertisement1 yearThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Advertisement".
                      cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
                      cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
                      cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
                      cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
                      cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
                      CookieLawInfoConsent1 yearRecords the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.
                      viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
                      Functional
                      Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
                      CookieDuurOmschrijving
                      bcookie2 yearsThis cookie is set by linkedIn. The purpose of the cookie is to enable LinkedIn functionalities on the page.
                      langsessionThis cookie is used to store the language preferences of a user to serve up content in that stored language the next time user visit the website.
                      lidc1 dayThis cookie is set by LinkedIn and used for routing.
                      Performance
                      Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
                      CookieDuurOmschrijving
                      YSCsessionThis cookies is set by Youtube and is used to track the views of embedded videos.
                      Analytics
                      Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
                      CookieDuurOmschrijving
                      _ga2 yearsThis cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors.
                      _gat_gtag_UA_116473530_11 minuteThis cookie is set by Google and is used to distinguish users.
                      _gat_UA-116473530-11 minuteThis is a pattern type cookie set by Google Analytics, where the pattern element on the name contains the unique identity number of the account or website it relates to. It appears to be a variation of the _gat cookie which is used to limit the amount of data recorded by Google on high traffic volume websites.
                      _gid1 dayThis cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visted in an anonymous form.
                      Advertisement
                      Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
                      CookieDuurOmschrijving
                      bscookie2 yearsThis cookie is a browser ID cookie set by Linked share Buttons and ad tags.
                      IDE1 year 24 daysUsed by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile.
                      prism_4768097571 monthUsed by ActiveCampaign to track usage of newsletters
                      test_cookie15 minutesThis cookie is set by doubleclick.net. The purpose of the cookie is to determine if the user's browser supports cookies.
                      VISITOR_INFO1_LIVE5 months 27 daysThis cookie is set by Youtube. Used to track the information of the embedded YouTube videos on a website.
                      yt-remote-connected-devicesneverYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
                      yt-remote-device-idneverYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
                      Others
                      Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
                      CookieDuurOmschrijving
                      AnalyticsSyncHistory1 monthNo description
                      CONSENT16 years 7 months 5 days 13 hoursNo description
                      li_gc2 yearsNo description
                      UserMatchHistory1 monthLinkedin - Used to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences.
                      OPSLAAN & ACCEPTEREN
                      Aangedreven door CookieYes Logo
                      Aanvraag CyberTIM Detect voor Microsoft 365 Trial

                        Download de gratis whitepaper!

                         

                          Inschrijven Webinar Vectra

                            Inschrijving Webinar Cofense

                              Inschrijven Webinar CrowdStrike

                                Start de Mimecast Service vandaag nog!

                                  Start met de Cognito Detect for Microsoft 365 Free Service

                                    Download de Tenable.OT Solution Brief

                                    Name *

                                    Email *


                                    Prijslijst aanvragen

                                     

                                      Meer weten over onze diensten?