Activities of "murat.kebabci"

Our recent penetration test flagged a high-severity vulnerability (CWE-94, CVE-2023-32571 class) regarding how the ABP framework natively handles the sorting parameter in its built-in paged list endpoints.

Affected Endpoints:

  • Virtually every default paged ABP list endpoint exposing ?sorting= (Verified specifically against GET /api/identity/users and GET /api/audit-logging/audit-logs, affecting ~80 built-in endpoints).

Issue Details: The ?sorting= query string is natively passed to System.Linq.Dynamic.Core by the framework without a strict allow-list mechanism. Consequently, arbitrary entity properties—including critical server-only columns like PasswordHash, SecurityStamp, and ConcurrencyStamp—along with string method invocations (e.g., .Substring, .Length) and ternary boolean predicates, are evaluated server-side. This creates a data-exfiltration blind oracle out-of-the-box. Server-only columns are accepted as sort keys, and rows are ordered by their actual values, allowing attackers to extract sensitive data character by character.

Requested Framework-Level Remediation: Since this vulnerability stems from the core framework's default implementation, we are requesting a structural patch/fix in the ABP framework itself rather than implementing manual overrides for every endpoint. Specifically, we request that the ABP team:

  1. Secure by Default: Update the framework to utilize a static allow-list validation mechanism for IGetListInput.Sorting by default, rejecting any unmapped or sensitive columns (like PasswordHash) with an HTTP 400 before they reach .OrderBy().
  2. Restrict ParsingConfig: Update the default ABP pipeline's System.Linq.Dynamic.Core ParsingConfig to strictly disable method-invocation, ternary-conditional, and substring-style accessors.

Could you please confirm if this issue is already being tracked, and in which upcoming release we can expect a framework-level patch for this vulnerability?

A penetration test revealed a high-severity email enumeration vulnerability (CWE-204, OWASP ASVS 4.0.3 §V2.6.7) on the account module's password reset endpoint.

Affected Endpoint:

  • POST /api/account/send-password-reset-code

Issue Details: The endpoint returns differential responses based on whether the supplied email exists in the selected user store.

  • If the email exists: Returns HTTP 500 (e.g., An internal error occurred...)
  • If the email does not exist: Returns HTTP 403 (e.g., Can not find the given email address...)

Additionally, passing a __tenant: header allows the lookup to pivot against any named tenant's user store without rate limits. We observed that the preventEmailEnumeration setting under /api/account-admin/settings appears to be false.

Requested Assistance & Remediation Guidance: We need to configure the password-reset action to always return an HTTP 200 with a uniform response body, regardless of whether the email exists in the system. How can we properly enforce preventEmailEnumeration: true globally and secure this endpoint against enumeration attacks in our current version?

We have identified a high-severity security finding (CWE-204: Observable Response Discrepancy) during a recent penetration test regarding the default tenant lookup endpoints in the ABP framework.

Affected Endpoints:

  • GET /api/abp/multi-tenancy/tenants/by-name/{name}
  • GET /api/abp/multi-tenancy/tenants/by-id/{guid}

Issue Details: Both lookups return existence-oracle responses anonymously. There is no rate limiting in place. The tenant UUIDs feed several other tenant-aware unauthenticated endpoints, allowing an attacker to enumerate valid tenants on the system.

Requested Assistance & Remediation Guidance: The SPA does not require anonymous tenant lookup once the login URL accepts a tenant query parameter. Can you provide the recommended approach to either:

  1. Enforce the MultiTenancy permission on both endpoints to prevent unauthenticated access.
  2. Completely remove or disable these endpoints from the public route in our current ABP version.

Hello,

We still have some migration code related to IdentityServer in the project, as we currently support customers using a product version that relies on it.

This will be addressed during release management, and the IdentityServer-related migration code will be removed accordingly.

Thank you for your effort and support

  • ABP Framework version: v8.3.4
  • UI Type: Angular
  • Database System: EF Core (SQL Server & PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Steps to reproduce the issue:

I have enabled the Dynamic Claims feature in my application to prevent concurrent logins by adding the following configurations in HttpApiHostModule and AuthServerModule:

context.Services.Configure(options => { options.IsDynamicClaimsEnabled = true; });

app.UseDynamicClaims();

I placed app.UseDynamicClaims(); before app.UseAuthorization(); as recommended in the documentation.

However, I am facing the following issue:

When logging in as a host admin, the granted permissions are empty in the application configuration. This prevents the admin from seeing menus and accessing certain pages.

Yes that's the problem, thank you

Hi, i recorded the issue

https://streamable.com/103ycv

In our application Identity is not the first tab, I assumed the same for yours. You can reproduce this issue by clicking a tab other than the first one, closing the modal, then reopening it.

Hello, There was a mistake so I updated the question, sorry for the confusion. You can reproduce the bug without adding any custom features.

  • ABP Framework version: v6.0.3
  • UI Type: Angular
  • Database System: EF Core (PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Steps to reproduce the issue:

Entering the host tenant. Navigate to the feature settings of any tenant. Click on Identity and then click Cancel. Access the feature settings of that tenant again. Observed Result: The previously closed pop-up, which is the Identity section, initially appears, followed by the first tab, which is Setting Management. Expected Result: The Setting Management tab, located in the first tab, should be displayed directly.

Thank you

Showing 1 to 10 of 31 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on September 28, 2026, 11:44
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.