Authorization Vulnerabilities and KVKK Breaches

Last updated: 2026-07-27

Authorization Vulnerabilities and KVKK Breaches: Lessons from Türkiye’s July 2026 Disclosure

An application can authenticate every user correctly and still expose personal data to the wrong people.

That is the central risk illustrated by a public data-breach notice issued by Türkiye’s Personal Data Protection Authority on 22 July 2026 concerning Global Bilgisayar Kontrol Sistemleri San. ve Tic. A.Ş.

According to the notice, an attacker exploited an authorization weakness in the controller’s application infrastructure and obtained unauthorized access. An endpoint could return up to 1,000 basic-profile records in a single call. The announced breach affected 1,022 people, including users, personnel and patients.

The notice is important, but technically limited. It does not state that the endpoint was an API, explain the authorization logic that failed, give the duration of the unauthorized access or say whether the attacker merely viewed the records or retained copies.

Organizations should therefore avoid assigning a definitive OWASP classification to this specific incident. The more useful lesson is broader: authentication, response-size limits and user-role fields do not protect personal data unless authorization is enforced for every object, function, property and business context.

What the public breach notice confirms

The distinction between confirmed facts and technical interpretation matters, particularly while the KVKK investigation remains open.

Issue What the public notice says
Data controller Global Bilgisayar Kontrol Sistemleri San. ve Tic. A.Ş.
Cause of the breach A cyberattack exploiting an authorization vulnerability in the controller’s application infrastructure.
Result Unauthorized access.
Technical interface The notice refers to an “endpoint” and a “single call,” but does not expressly identify it as an API.
Record-return limit The endpoint did not use pagination and could return no more than 1,000 basic-profile records in one call.
Announced scope Less than 1% of the total database’s basic-profile data was affected.
Affected groups Employees, users and patients.
Affected data Name and surname, telephone number, email address and users’ roles in the system.
Number of affected people 1,000 standard users and 22 personnel, totalling 1,022 people.
Regulatory status The Board decided on 22 July 2026, through Decision No. 2026/1492, to publish the breach notice.
Investigation status The KVKK Authority’s examination was continuing when the notice was published.

The notice does not disclose:

  • Whether the endpoint was an API.
  • Whether the failure involved object-level, property-level, function-level, tenant-level or role-based authorization.
  • When the unauthorized access began or how long it continued.
  • When the data controller discovered the incident.
  • When the controller notified the KVKK Authority.
  • Whether the attacker viewed the data, downloaded it, retained it or transferred it elsewhere.
  • Whether affected individuals were notified directly.
  • What containment or remediation measures were implemented.
  • Whether health records, diagnoses, treatment information or other special-category personal data were accessed.
  • The final outcome of the KVKK investigation.

These points should not be inferred from the brief description. In particular, the words “endpoint” and “call” are consistent with API terminology but do not conclusively establish that the affected interface was an API.

What an authorization vulnerability means

Authorization determines what an identified user, service or device is permitted to do.

An authorization vulnerability exists when an application does not correctly enforce those permissions. A person may be legitimately signed in but still be able to:

  • View another user’s record.
  • Search across records outside their assigned organization.
  • Access patient information without being involved in the person’s care.
  • Invoke an administrative function using a standard account.
  • Request fields that their role should not receive.
  • Change an object identifier and retrieve someone else’s information.
  • Access data belonging to another customer or tenant.
  • Continue using permissions that should have been revoked.

Authorization should normally be enforced on the server for every relevant request. Hiding a button, removing a menu option or relying on restrictions in a browser or mobile application is insufficient because client-side controls can often be bypassed.

Authentication versus authorization

Authentication and authorization solve different problems.

Security question Control
“Who are you?” Authentication
“Are you allowed to perform this action?” Authorization
“Are you allowed to access this particular record?” Object-level authorization
“Are you allowed to receive these fields?” Property- or field-level authorization
“Are you allowed to perform this action in the present role, organization and business context?” Function-, role- or context-level authorization

Multi-factor authentication can make account takeover more difficult. It does not prevent a properly authenticated account from exploiting a broken authorization rule.

Similarly, a valid session token only proves that the application accepted the user’s identity. It does not prove that every request made with that token is permissible.

Common API authorization failures

The 2026 public notice does not provide enough detail to classify the vulnerability. Nevertheless, organizations operating APIs or comparable application endpoints should test for several recurring authorization failures.

Broken object-level authorization

An application receives an identifier for a user, patient, order, file or other record but does not verify whether the requester is entitled to access that specific object.

For example, changing:

/patients/4812
to:
/patients/4813

should not return another patient’s information merely because both records exist.

The control must evaluate the relationship between the requester and the requested object, not simply whether the requester has logged in.

Broken function-level authorization

A standard user can invoke a function intended for an administrator, clinician, support employee or another privileged role.

This can occur when the interface hides the function but the server does not independently enforce the role restriction.

Broken property-level authorization

A user is entitled to access an object but receives fields that are unnecessary for their role.

For example, a scheduling user may need a patient’s name and appointment time but not clinical notes, identity-document details or internal risk flags.

Field-level restrictions should be applied before the response is generated. Sending all fields to the client and merely hiding some of them in the interface does not provide effective protection.

Incomplete role-based authorization

A system may contain roles such as standard user, employee, clinician, administrator or support operator but apply those roles inconsistently across endpoints.

A role label in a database is not itself an access control. Each protected operation must map the role—and any additional conditions—to a specific permission.

Missing tenant or organization boundaries

In multi-tenant systems, authorization must prevent one customer’s users from accessing another customer’s records.

Filtering only by record identifier, without also enforcing the relevant tenant or organization identifier, can create cross-customer exposure.

Missing business-context checks

Roles alone are often too broad for healthcare and other sensitive environments.

A clinician’s role may establish a general capability to access patient information, but access may still need to depend on an active treatment relationship, assigned department, location, emergency-access procedure or another documented context.

Why a 1,000-record limit does not eliminate breach risk

A maximum response size can reduce resource consumption and, in some circumstances, limit the amount of data returned by one request. It is not an authorization control.

A limit of 1,000 records does not answer the central question: was the requester permitted to see those records?

Even a single unlawfully disclosed record can constitute a personal-data security incident. The seriousness of the impact depends on more than the percentage of the database affected. Relevant factors can include:

  • The nature and context of the data.
  • Whether individuals can be identified directly.
  • The number and categories of affected people.
  • The attacker’s apparent purpose.
  • Whether access could be repeated or automated.
  • Whether the information can facilitate phishing, impersonation or targeted social engineering.
  • Whether exposed information reveals an employment, customer or patient relationship.
  • Whether the records relate to vulnerable individuals.
  • Whether the organization can reliably determine what the attacker accessed.

Response-size limits, pagination, rate limits and query-cost controls remain useful defence-in-depth measures. But they should operate alongside authorization, not substitute for it.

A secure endpoint should generally determine:

  1. Who is making the request.
  2. Which role or permissions apply.
  3. Which organization or tenant the user belongs to.
  4. Which objects the user is entitled to access.
  5. Which fields the user is entitled to receive.
  6. Whether the request is appropriate in the current business context.
  7. Whether the volume or pattern of access is abnormal.

Role and patient-context sensitivity

The public notice lists names, telephone numbers, email addresses and system roles as the affected data. It does not state that diagnoses, medical records, treatment details or other health information were accessed.

That limitation should be preserved when reporting the incident.

However, context still matters when evaluating possible harm. Connecting an identified person with a patient group, healthcare-related service or particular system can be more sensitive than exposing the same contact details without that context. It may support convincing phishing messages, impersonation attempts or unwanted inferences about the individual.

Organizations should therefore assess both the fields exposed and what those fields reveal when combined with:

  • The identity of the service provider.
  • The person’s role or user category.
  • The source system.
  • The timing of the interaction.
  • Other publicly available or previously compromised information.

For patient-facing systems, authorization design should also consider whether a user has a legitimate relationship with the particular patient. Giving every employee with a broad “staff” or “healthcare professional” role access to all patient records is rarely an adequate least-privilege model.

Possible controls include:

  • Patient-to-clinician or patient-to-team assignments.
  • Department and location restrictions.
  • Purpose- or workflow-based access.
  • Time-limited access for temporary assignments.
  • Emergency “break-glass” access with a recorded justification.
  • Additional approval for bulk exports.
  • Masking of fields unnecessary for the task.
  • Regular review of access involving high-risk or sensitive records.

The appropriate model depends on the application, applicable sector rules and operational requirements.

Logging and anomaly detection

Authorization controls can fail because of coding errors, configuration changes, undocumented endpoints or inconsistent rules between application versions. Logging and monitoring are therefore necessary both for early detection and for later breach assessment.

Relevant logs may include:

  • Authenticated user, service account or session identifier.
  • Role, tenant and organization context.
  • Endpoint or function invoked.
  • Object or record scope requested.
  • Number of records returned.
  • Authorization decision and applicable policy.
  • Administrative or bulk-access actions.
  • Source IP address and relevant device or session information.
  • Date, time and correlation identifier.
  • Rate-limit or access-control errors.
  • Changes to roles, policies and permission assignments.
  • Emergency or exceptional-access justifications.

Logs should not unnecessarily reproduce the sensitive data contained in the response. They must also be protected from unauthorized modification and retained for a period aligned with the organization’s risk assessment, legal requirements and incident-response needs.

Useful detection scenarios include:

  • A standard user requesting unusually large numbers of records.
  • Sequential access to many different object identifiers.
  • One account accessing multiple organizations or tenants.
  • Patient records accessed without an apparent treatment or operational relationship.
  • A user invoking functions inconsistent with their assigned role.
  • Sudden changes in response volume from a particular endpoint.
  • Repeated denied requests followed by a successful request.
  • Access from unusual locations, devices or times.
  • Large exports or multiple high-volume calls in a short period.
  • Permission changes immediately followed by data access.

Monitoring should be based on expected behaviour for each role. A request volume that is ordinary for an authorized reporting service may be highly abnormal for a standard user.

Incident containment and forensic preservation

When unauthorized access is suspected, the organization needs to contain the exposure without destroying the evidence required to understand it.

A practical response should include the following stages.

1. Establish the incident timeline

Record when the alert was received, when the organization first became aware of a possible personal-data breach, when the incident was confirmed and who made each decision.

The KVKK notification period is linked to when the controller learned of the breach. That makes a documented discovery timeline particularly important.

2. Contain the affected access path

Depending on the incident, containment may involve:

  • Disabling or restricting the affected endpoint.
  • Applying a server-side authorization rule.
  • Revoking compromised sessions or tokens.
  • Rotating relevant credentials and keys.
  • Temporarily disabling bulk access or export functions.
  • Blocking known malicious indicators.
  • Applying tenant, object or role filters.
  • Increasing monitoring while the investigation continues.

Emergency changes should be documented and tested. A rushed patch can create another exposure or remove evidence.

3. Preserve evidence

Before logs rotate or systems are rebuilt, preserve relevant:

  • Application, API gateway, identity and database logs.
  • Web application firewall and network records.
  • Cloud audit trails.
  • Endpoint and server telemetry.
  • Relevant database snapshots.
  • Deployed application versions and configuration.
  • Authorization policies and role mappings.
  • Change, release and support records.
  • Alerts and communications associated with the incident.

Evidence should be handled in a manner that preserves integrity, access history and chain of custody where appropriate.

4. Determine the real scope

The investigation should distinguish among:

  • Records technically exposed by the vulnerability.
  • Records requested by the attacker.
  • Records returned by the system.
  • Records viewed, downloaded or otherwise retained, where evidence permits.
  • People who can be reliably identified as affected.
  • People who may be affected but cannot yet be confirmed.

Absence of evidence of downloading is not automatically evidence that data remained unseen. The conclusion should be based on available logs, response records, attacker activity and the limitations of the monitoring environment.

5. Validate the remediation

Before restoring normal access, test the endpoint across:

  • Anonymous requests.
  • Standard users.
  • Privileged users.
  • Different roles and departments.
  • Different objects.
  • Different tenants.
  • Direct endpoint requests outside the intended interface.
  • Bulk and automated requests.
  • Deprecated and undocumented versions.
  • Error and fallback paths.

Regression tests should be added so the same authorization failure does not return during a later release.

KVKK notification and affected-person communication

Article 12 of Law No. 6698 requires data controllers to take the technical and administrative measures necessary to prevent unlawful processing and access and to ensure the protection of personal data.

Under Article 12(5), when processed personal data is obtained by others through unlawful means, the controller must notify the affected person and the Personal Data Protection Board as soon as possible.

The Board’s Decision No. 2019/10 interprets “as soon as possible” as requiring notification to the Board without delay and no later than 72 hours after the controller learns of the breach.

If all information is not immediately available, the controller may provide it progressively without undue delay. A controller that cannot notify within 72 hours for a justified reason must explain the delay.

The decision also requires controllers to:

  • Record information about the breach, its effects and the measures taken.
  • Keep those records available for the Board’s examination.
  • Establish and periodically review a data-breach response plan.
  • Define internal reporting and decision-making responsibilities.
  • Ensure that a processor reports a breach to the controller without delay.

Affected individuals must be informed within a reasonable period after they have been identified. Where contact information is available, communication should be made directly. If direct communication is not possible, another appropriate method, such as publication on the controller’s website, may be used.

Under Decision No. 2019/271, the affected-person communication should use clear and plain language and contain at least:

  • When the breach occurred.
  • Which personal data was affected, distinguishing personal data from special-category personal data.
  • The possible consequences of the breach.
  • Measures taken or recommended to reduce adverse effects.
  • Contact details through which affected people can obtain further information.

The July 2026 notice does not disclose the controller’s discovery date, its notification date or whether affected individuals were contacted directly. It therefore does not provide enough information to assess notification timing or communication compliance.

Organizations should not delay an initial Board notification merely because forensic analysis is incomplete. The staged-notification mechanism exists for situations where the controller knows that a reportable breach has occurred but is still determining its full cause or scope.

Preventive authorization-control checklist

Governance and access design

  • Maintain an inventory of applications, endpoints, APIs and deployed versions.
  • Identify the data, roles, functions and tenants handled by each endpoint.
  • Define permissions through a documented authorization matrix.
  • Apply least privilege and deny access by default.
  • Separate standard, support, clinical, administrative and service-account privileges.
  • Add business-context rules where role-based access alone is insufficient.
  • Establish approval and monitoring requirements for bulk access.
  • Periodically review roles, dormant accounts and accumulated permissions.
  • Remove access promptly when employment, assignment or supplier relationships end.

Secure development

  • Enforce authorization on the server for every protected request.
  • Check object ownership or entitlement every time an identifier is accepted.
  • Enforce tenant boundaries independently of client-supplied values.
  • Filter response properties according to role and purpose.
  • Centralize authorization logic where practical.
  • Avoid relying on hidden interface elements as security controls.
  • Include negative authorization tests in automated test suites.
  • Test direct requests that bypass the browser or mobile interface.
  • Review old, undocumented and test endpoints.
  • Include authorization abuse cases in threat modelling.
  • Conduct security testing after material access-control changes.

Volume and misuse controls

  • Use pagination and sensible maximum response sizes.
  • Apply rate limits based on user, token, device and endpoint risk.
  • Require additional authorization for bulk exports.
  • Restrict service accounts to defined functions and datasets.
  • Detect sequential object access and repeated enumeration attempts.
  • Set alerts for anomalous volumes by role and business context.
  • Avoid returning fields that the requesting function does not require.

Monitoring and evidence

  • Log successful data access, not only failed login attempts.
  • Record authorization decisions and relevant role or tenant context.
  • Protect logs against alteration and unauthorized access.
  • Synchronize system clocks.
  • Define retention periods that support investigations.
  • Test whether the logs can identify the records returned to a user.
  • Monitor changes to permissions, roles and access policies.
  • Regularly test incident-detection scenarios.

Incident readiness

  • Maintain a documented personal-data breach response plan.
  • Define who decides whether the KVKK Authority must be notified.
  • Establish a clear processor-to-controller escalation route.
  • Prepare the KVKK notification form and affected-person templates in advance.
  • Preserve evidence before rebuilding or extensively modifying systems.
  • Track the 72-hour period from the recorded time of discovery.
  • Support progressive notification when the investigation is incomplete.
  • Document containment decisions, affected scope and remediation.
  • Retest authorization controls before restoring service.
  • Conduct a post-incident review and track corrective actions to completion.

The practical lesson

The disclosed record limit and the percentage of the overall database affected provide useful scope information, but they should not distract from the control failure at the centre of the notice.

An endpoint that returns 10, 100 or 1,000 records still needs to decide whether the requester is entitled to receive each record and each returned field. Authentication, pagination and rate limiting cannot make that decision.

Organizations handling customer, employee or patient information should test authorization as a distinct security layer. That means testing not only who can log in, but what each user can access, under which role, for which organization, in relation to which person and in what operational context.

The final regulatory conclusions in this incident remain unknown. Until the KVKK Authority completes its examination or publishes a later decision, the technical cause should be described only at the level confirmed by the public notice: exploitation of an authorization vulnerability in the application infrastructure resulting in unauthorized access.

How Kooch can help

Kooch Cybersecurity & Compliance helps organizations examine how application security, access governance, incident response and KVKK obligations connect in practice.

This can include reviewing access-control documentation, incident-response processes, processor arrangements, evidence retention and the privacy implications identified through a KVKK/GDPR Gap Analysis or ongoing compliance engagement. Product-specific vulnerability testing may require coordination with appropriately qualified application-security specialists.

Sources and references

Masoud Salmani