The breach involving South Korea’s government-backed startup platform Modu-ui Changup is a particularly good example of why encryption alone does not equal data protection. The affected information was reportedly encrypted, but the encryption key was exposed through the same API path from which the data could be collected. Once the key and ciphertext are available together, the protection provided by encryption is effectively neutralised. In this incident, about 5,000 successful applicants had information exposed, including email addresses, evaluation comments and summaries of startup ideas. The platform is associated with a nationwide startup audition program overseen by South Korea’s Ministry of SMEs and Startups, so the compromised information included not only personal data but potentially commercially sensitive ideas belonging to early-stage businesses.

The incident began attracting concern even before authorities confirmed the final root cause. According to the report, concerns had already been raised that applicant information could be structured and exposed through API responses. The government said action was taken, but the later investigation concluded on July 31 that the decisive cause of the leak was exposure of an encryption key through an API. External parties were able to collect API data through techniques including web crawling, and information configured as private in the user interface could nevertheless be obtained from the underlying application interfaces. This is an important reminder that hiding information on a webpage is not the same as protecting it at the API and authorization layers.

The most serious architectural failure was key separation. Encryption is supposed to ensure that possession of the stored data alone is insufficient to recover the original information. That security assumption collapses if the application returns the decryption key alongside, or through the same accessible environment as, the encrypted data. It is conceptually similar to installing a very strong safe and then attaching the combination to the front of it. The cryptographic algorithm may be perfectly sound, but the operational design has defeated the entire purpose of using it.

This distinction between cryptography and key management is fundamental. Encryption algorithms such as AES are designed under the assumption that the key remains secret. The strength of the cipher cannot compensate for insecure handling of that key. Keys should therefore not be hard-coded into application source code, embedded in API responses, stored alongside encrypted data in the same database, committed to repositories or placed in configuration files that ordinary application processes can freely expose. Key management is not an optional administrative layer around encryption; it is one of the security properties that makes encryption meaningful in the first place.

The breach also demonstrates why application developers need to think carefully about where decryption actually occurs. Ideally, an application should request cryptographic operations from a dedicated key-management service rather than retrieve and retain long-lived raw encryption keys. A properly designed architecture allows the application to request that authorised data be decrypted while the actual master key remains protected inside a KMS or HSM-backed environment. If the application is compromised, the attacker should not automatically receive a reusable key capable of decrypting every historical record.

A further issue is that supposedly private email addresses were not shown through the normal public interface but were apparently accessible through API responses and could be collected using automated or AI-assisted crawling. This highlights a common API-security mistake: treating the frontend as the security boundary. Modern web applications often retrieve far more information through APIs than they display to the user. CSS, JavaScript or application logic may hide certain fields, but if those fields are included in the API response, they have already been disclosed to the client. Attackers can simply call the API directly and ignore whatever the website chooses to render.

Authorization therefore needs to be enforced server-side at the field and object level. An API should return only the information the requesting identity is actually permitted to access. If an unauthenticated visitor needs a startup name and public summary, the API should not also return private email addresses and rely on the frontend not to display them. This principle sounds painfully obvious once written down, yet API overexposure remains one of the more persistent ways organisations accidentally convert internal information into public information.

The exposure of startup idea summaries is particularly sensitive. For an early-stage company, an idea, product concept, market strategy or technical approach may represent a significant portion of its competitive value. Breaches involving intellectual property can therefore cause a different form of harm from conventional identity theft. A compromised password can be changed; an innovative concept disclosed to competitors cannot be made unknown again. Platforms collecting applications for startup programs, research grants, patents, innovation challenges or government funding should consequently treat submitted ideas as commercially sensitive information rather than ordinary form data.

The reported use of web crawling also demonstrates how automation changes the impact of weak API design. A security issue that exposes one record manually can expose thousands of records when scripted. Attackers can systematically enumerate IDs, pagination values or API parameters and construct a complete dataset in minutes or hours. Rate limiting, anomaly detection and API behavioural monitoring therefore become important controls alongside authorization. A legitimate visitor may retrieve a few application records; one IP address systematically requesting every identifier in sequence should attract substantially more attention.

Authorities reportedly identified 39 IP addresses involved in accessing the exposed information, all originating in South Korea, while investigation continues into whether AI solution providers or other actors were connected to the collection. That detail illustrates why access logging needs to be sufficiently granular to reconstruct API activity after an incident. Logs should capture requesting identity, source address, endpoint, object identifiers, response size and relevant authorization decisions. Without such telemetry, organisations may discover that data was accessible but have very little ability to determine who actually retrieved it.

The incident also raises an important issue around key rotation. Once an encryption key has been exposed, generating a replacement key prevents future data from being protected with the compromised secret, but it does nothing to protect historical ciphertext already encrypted with the old key. Anyone who obtained both the encrypted data and the old key can continue decrypting those records indefinitely. Proper remediation therefore requires identifying every dataset encrypted using the compromised key and re-encrypting that information under a newly generated key.

This can become operationally difficult if an organisation has used one static key across millions of records for many years. Mature key-management architecture therefore includes key identifiers, versioning and controlled rotation so systems can determine which key protects each piece of data. Keys should have defined lifecycles rather than remaining permanent application constants. Rotation should be a normal operational capability, not an emergency engineering project invented after exposure.

Envelope encryption provides one useful architectural model. Instead of encrypting every record directly with one master key, applications can use separate data-encryption keys that are themselves encrypted by a master key stored in a KMS or HSM. The master key never needs to leave the protected key-management environment. Compromise of one data-encryption key can then have a much smaller blast radius, and rotating master keys becomes more manageable.

Access to cryptographic operations should also follow least privilege. An application service should have permission to decrypt only the categories of information required for its specific function. A public API process should not necessarily possess the same cryptographic authority as an internal administrative service. Splitting these roles reduces the chance that compromise or misuse of one application component exposes every encrypted field in the system.

Monitoring of key usage is equally important. A KMS should record which application requested a key operation, when it occurred, which key was used and ideally the security identity making the request. A sudden spike in decrypt operations or use of a sensitive key by an unusual service should generate an alert. When raw keys are hard-coded into software, organisations lose much of this visibility because there is no central service observing how frequently the key is being used.

Customers should also distinguish between encryption at rest and application-level exposure. Encrypting a database volume protects against someone stealing the underlying disk or snapshot. It does not protect information when the application itself is authorised to read it and the attacker compromises the application. Field-level encryption with properly separated keys can provide stronger protection, but even that becomes ineffective if the application exposes the key or performs unrestricted decryption for anyone who calls an API.

The breach is therefore not evidence that encryption is ineffective. It is evidence that encryption has to be implemented as a complete system. Secure cryptography involves algorithm choice, key generation, storage, access control, rotation, revocation, auditing and separation of duties. Concentrating exclusively on whether a database column says “encrypted” can create an impressive compliance checkbox while providing surprisingly little real protection.

For organisations operating similar platforms, the first preventive step is to ensure that encryption keys are stored in a dedicated KMS or hardware security module rather than in application code, API responses or the same database as the protected information. Applications should request cryptographic operations through authenticated APIs and should never expose raw master keys to clients. Production keys should also be completely separate from development and testing environments.

The second requirement is rigorous API authorization. Every endpoint should be reviewed to determine exactly which fields it returns and whether each field is appropriate for the requesting identity. Unauthenticated APIs should expose only intentionally public information. Object identifiers should not be assumed secret, and APIs should be tested for enumeration, insecure direct object references and excessive data exposure.

Automated security testing can help identify these issues before attackers do. API schemas can be compared with data-classification policies, and security tests can verify that sensitive fields never appear in unauthorised responses. Penetration testing should include direct API interaction rather than testing only through the browser interface. An application may appear perfectly secure when navigated like a normal user while leaking private information very efficiently to anyone willing to open developer tools.

Rate limiting and behavioural detection provide another layer. Systems should identify sequential scraping, unusually high request volumes, large response accumulation and automated traversal across large portions of a dataset. Rate limiting alone cannot repair broken authorization, but it can turn a database-scale leak into a smaller incident and provide defenders with additional time to respond.

Sensitive APIs should also avoid returning unnecessary cryptographic metadata. Initialization vectors, salts and key identifiers are normally safe to expose when cryptography is correctly designed, but raw secret keys or reusable credentials obviously are not. Development teams need clear rules distinguishing public cryptographic parameters from secret key material rather than treating every value involved in encryption as interchangeable configuration.

Secrets scanning should extend beyond source-control repositories. CI/CD logs, Docker images, application bundles, JavaScript packages, mobile applications, configuration exports and API responses can all expose cryptographic keys. Automated scanners should look for known key formats and high-entropy secrets throughout the software delivery pipeline. The recent discovery of thousands of long-lived exposed AWS credentials demonstrates how easily secrets survive for years once they escape into public artefacts.

Organisations should also minimise the amount of sensitive information they retain. If unsuccessful startup applications, outdated evaluation notes or old contact details no longer have a legitimate business or regulatory purpose, retaining them indefinitely only increases the eventual breach impact. Encryption helps protect retained information, but deletion remains remarkably resistant to cryptanalysis.

Incident response for key exposure must be broader than ordinary password rotation. Teams need to identify which key was exposed, what information it protected, when exposure began, which systems could access it and whether attackers downloaded corresponding ciphertext. The compromised key should be revoked, replacement keys generated securely, affected information re-encrypted and access logs reviewed for suspicious activity. If the same key was reused across development, backups or other applications, those environments must be included in the investigation as well.

Backup data should not be forgotten. Re-encrypting the production database while leaving years of backups encrypted with a compromised key creates a lingering exposure. Organisations need a defined strategy for old backups, including whether they can be re-encrypted, securely deleted after retention periods or protected through additional wrapping keys. Cryptographic incident response becomes surprisingly complicated once a secret has been reused everywhere for years, which is precisely why good key lifecycle management is worth designing before the emergency.

The breach also provides a governance lesson for government and public platforms handling commercially sensitive submissions. Security reviews should examine not only compliance with encryption requirements but whether keys are genuinely separated from data and applications. An auditor confirming that personally identifiable fields are “encrypted” without examining where the decryption keys live may validate the existence of cryptography while missing the control that determines whether that cryptography actually protects anything.

The broader lesson is that protecting data requires understanding both the data path and the trust path. In this incident, private information could reportedly be reached through an API, and the cryptographic secret necessary to interpret protected information was exposed through the same environment. The attacker therefore did not need to defeat modern encryption. The architecture handed them both sides of the equation.

For customers, the practical defence should be layered: keep encryption keys in an independent KMS or HSM, never hard-code or expose raw keys through applications, implement regular key rotation and versioning, enforce field-level API authorization, test APIs for excessive data exposure, monitor for automated scraping, maintain detailed key and API audit logs, apply least privilege to decryption operations, and minimise unnecessary historical data. If a key is ever exposed, revoke it immediately, investigate its use and re-encrypt all information protected by that key rather than assuming simple key replacement has solved the problem.

The most important takeaway from the Modu-ui Changup incident is therefore quite simple: encrypted data and the key capable of decrypting it must never travel together. Encryption is not a decorative property of a database column. It is a trust architecture built around keeping the key away from anyone who is not explicitly authorised to use it. Once the key is exposed alongside the data, even excellent cryptography becomes little more than extra processing for the attacker.


A breach at South Korea's government-backed startup platform exposed encrypted personal data after an encryption key was included in an API. Penta Security explains why encryption keys must be securely managed and kept separate from the data they protect. [...]

Source: South Korean startup platform breach exposes key management failures via Bleeping Computer — published 24 Aug 2026.