VYPR
Moderate severityNVD Advisory· Published Apr 17, 2024· Updated Aug 2, 2024

Umbraco's Blind SSRF Leads to Port Scan by using Webhooks

CVE-2024-29035

Description

Umbraco is an ASP.NET CMS. Failing webhooks logs are available when solution is not in debug mode. Those logs can contain information that is critical. This vulnerability is fixed in 13.1.1.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
Umbraco.Cms.CoreNuGet
>= 13.0.0, < 13.1.113.1.1
Umbraco.Cms.Web.BackOfficeNuGet
>= 13.0.0, < 13.1.113.1.1

Affected products

1

Patches

1
6b8067815c02

Merge pull request from GHSA-74p6-39f2-23v3

https://github.com/umbraco/Umbraco-CMSNikolaj GeisleFeb 6, 2024via ghsa
3 files changed · +29 5
  • src/Umbraco.Core/EmbeddedResources/Lang/da.xml+2 0 modified
    @@ -1015,6 +1015,8 @@
         <key alias="createHeader">Opret header</key>
         <key alias="deliveries">Leverancer</key>
         <key alias="noHeaders">Der er ikke tilføjet nogen webhook headers</key>
    +    <key alias="toggleDebug">Skift til debug mode for mere information.</key>
    +    <key alias="statusNotOk">Ikke OK status kode.</key>
       </area>
       <area alias="language">
         <key alias="cultureCode">Culture Code</key>
    
  • src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml+2 0 modified
    @@ -2032,6 +2032,8 @@ To manage your website, simply open the Umbraco backoffice and start adding cont
         <key alias="types">Types</key>
         <key alias="webhookKey">Webhook key</key>
         <key alias="retryCount">Retry count</key>
    +    <key alias="toggleDebug">Toggle debug mode for more information.</key>
    +    <key alias="statusNotOk">Not OK status code</key>
       </area>
       <area alias="languages">
         <key alias="addLanguage">Add language</key>
    
  • src/Umbraco.Web.BackOffice/Mapping/WebhookMapDefinition.cs+25 5 modified
    @@ -1,12 +1,23 @@
    -using Umbraco.Cms.Core.Mapping;
    +using Umbraco.Cms.Core.Hosting;
    +using Umbraco.Cms.Core.Mapping;
     using Umbraco.Cms.Core.Models;
    +using Umbraco.Cms.Core.Services;
     using Umbraco.Cms.Core.Webhooks;
     using Umbraco.Cms.Web.Common.Models;
     
     namespace Umbraco.Cms.Web.BackOffice.Mapping;
     
     public class WebhookMapDefinition : IMapDefinition
     {
    +    private readonly IHostingEnvironment _hostingEnvironment;
    +    private readonly ILocalizedTextService _localizedTextService;
    +
    +    public WebhookMapDefinition(IHostingEnvironment hostingEnvironment, ILocalizedTextService localizedTextService)
    +    {
    +        _hostingEnvironment = hostingEnvironment;
    +        _localizedTextService = localizedTextService;
    +    }
    +
         public void DefineMaps(IUmbracoMapper mapper)
         {
             mapper.Define<WebhookViewModel, IWebhook>((_, _) => new Webhook(string.Empty), Map);
    @@ -40,13 +51,22 @@ private void Map(WebhookLog source, WebhookLogViewModel target, MapperContext co
             target.EventAlias = source.EventAlias;
             target.Key = source.Key;
             target.RequestBody = source.RequestBody ?? string.Empty;
    -        target.ResponseBody = source.ResponseBody;
             target.RetryCount = source.RetryCount;
    -        target.StatusCode = source.StatusCode;
             target.Url = source.Url;
             target.RequestHeaders = source.RequestHeaders;
    -        target.ResponseHeaders = source.ResponseHeaders;
             target.WebhookKey = source.WebhookKey;
    -        target.ExceptionOccured = source.ExceptionOccured;
    +
    +        if (_hostingEnvironment.IsDebugMode)
    +        {
    +            target.ExceptionOccured = source.ExceptionOccured;
    +            target.ResponseBody = source.ResponseBody;
    +            target.ResponseHeaders = source.ResponseHeaders;
    +            target.StatusCode = source.StatusCode;
    +        }
    +        else
    +        {
    +            target.ResponseBody = _localizedTextService.Localize("webhooks", "toggleDebug", Thread.CurrentThread.CurrentUICulture);
    +            target.StatusCode = source.StatusCode is "OK (200)" ? source.StatusCode : _localizedTextService.Localize("webhooks", "statusNotOk", Thread.CurrentThread.CurrentUICulture);
    +        }
         }
     }
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

4

News mentions

0

No linked articles in our index yet.