Skip to content

Archive

Cybersecurity

535 articles
Cybersecurity 13 Sep 2026 7 min read

Unsafe Deserialization Turns Data Into Program Behavior

A serialized value can look inert on the wire and become active the moment an application reconstructs it. The dangerous transition is easy to miss because the input may resemble ordinary state: fields, type names, references, collection entries, or compact binary records. Yet some serialization systems restore far more than plain data. They can select classes, invoke constructors or callbacks, rebuild object graphs, and activate framework behavior during or after decoding.

Cybersecurity 13 Sep 2026 6 min read

Session Rotation Keeps Authentication From Inheriting an Attacker Chosen Identifier

A login can validate every credential correctly and still leave the resulting account exposed if the application keeps the same session identifier that existed before authentication. The defect is not in password checking or cryptography. It is in the transition from an anonymous browser state to an authenticated one. That transition matters because pre-authentication sessions are often easy to obtain. Applications create them for shopping carts, locale preferences, anti-abuse state, or ordinary framework bookkeeping. If an attacker can arrange for a victim to use an identifier already known to the attacker, and successful login preserves that identifier, the attacker can later present the same value and inherit the authenticated session.

Cybersecurity 13 Sep 2026 8 min read

Session Rotation Closes a Quiet Authentication Gap

A browser can arrive at a sign-in page with a session identifier that already existed before any credentials were presented. That is normal. Shopping carts, anti-abuse state, language preferences, and pre-authentication workflows often need server-side continuity. The security problem appears when successful authentication upgrades that same identifier instead of replacing it. At that moment, a token created for anonymous state becomes a bearer credential for an authenticated account. If another party already knows or controls the identifier, the login has upgraded their copy too. This is the essential shape of session fixation: the attacker does not need to steal a fresh authenticated session if the application can be persuaded to authenticate a session the attacker already possesses.

Cybersecurity 13 Sep 2026 6 min read

Server-Side Fetchers Expand the Network Trust Boundary

A feature that accepts a URL often looks less privileged than it is. An image importer, webhook validator, document previewer, link unfurler, or integration tester may perform only an outbound HTTP request, yet that request originates from infrastructure with a network position the remote caller does not possess. That difference is the core security issue in server-side request forgery, commonly shortened to SSRF. The application is not merely processing attacker-influenced text. It is acting as a network client on behalf of that input, potentially carrying access to private address space, local services, cloud control interfaces, or endpoints protected mainly by topology.

Cybersecurity 13 Sep 2026 8 min read

Password Reset Is an Authentication Ceremony

A password reset endpoint can be quieter than the login page and still hold more authority. A successful login proves possession of an existing credential. A successful reset replaces that credential, often after a single email link has crossed several systems outside the application’s direct control. That makes account recovery an authentication ceremony in its own right. Treating it as a support feature creates a dangerous asymmetry: the primary login path receives rate limits, multifactor checks, session controls, and detailed telemetry, while the recovery path is reduced to “email a token and accept a new password.”

Cybersecurity 13 Sep 2026 7 min read

Passkeys Move Authentication Trust Into Origin-Bound Credentials

A convincing phishing page can copy a login form almost perfectly. It can reproduce branding, layout, wording, and even a plausible domain name. With passwords, visual similarity is often enough to obtain a reusable secret. A passkey changes the decisive part of that exchange: the authenticator signs for the relying party it was registered with, rather than handing a credential string to whichever page asks for one. That distinction is more important than the absence of typing. Passkeys are built on WebAuthn credentials backed by asymmetric cryptography. The relying party stores a public key and related credential data; the authenticator retains or protects the corresponding private-key material. Authentication proves possession by signing fresh protocol data. The server does not need a password-equivalent secret that can be replayed after a database disclosure.

Cybersecurity 13 Sep 2026 8 min read

Outbound Requests Turn Applications Into Network Proxies

A feature that fetches a remote image can acquire far more network authority than its product description suggests. From the application host, the same HTTP client may be able to reach loopback services, private address space, cloud metadata endpoints, or administrative interfaces that are invisible from the public internet. That gap between user-visible function and server-side reach is the core security problem in server-side request forgery. The vulnerable component is not necessarily a traditional proxy. Webhook testers, document renderers, URL previewers, import tools, feed readers, media processors, and callback validators can all become request brokers when an external party influences the destination.

Cybersecurity 13 Sep 2026 7 min read

Mutual TLS Makes Service Identity a Certificate Lifecycle Problem

A service can encrypt every connection and still have only a vague idea of what is calling it. Conventional server-authenticated TLS proves the server’s identity to the client, but the reverse direction is usually left to an application credential, a network location, or infrastructure convention. Mutual TLS changes that relationship by requiring the client to present a certificate as well. The transport can then carry authenticated identities in both directions before application data is exchanged.

Cybersecurity 13 Sep 2026 8 min read

JWT Verification Must Bind Algorithm, Key, and Issuer

JWT Verification Must Bind Algorithm, Key, and Issuer A signed token can be cryptographically valid and still be unacceptable to the service receiving it. The signature answers a narrow question: the token bytes match a signature produced with a particular cryptographic key under a particular algorithm. Authorization depends on a larger set of facts, including who controls that key, which issuer is trusted, which audience the token targets, and which algorithms the application intended to accept.

Cybersecurity 13 Sep 2026 7 min read

JWT Verification Fails at the Algorithm Boundary

A JSON Web Token can carry a perfectly valid signature and still be unacceptable to the service receiving it. That distinction is easy to lose in systems where token verification is reduced to a library call that returns a boolean or a decoded claims object. JWT signatures establish a narrow fact: given a particular algorithm and key, the protected token bytes authenticate successfully. Authorization requires more. The verifier also has to decide which algorithms are permitted, which keys belong to the expected authority, which issuer produced the token, which service the token targets, whether its time constraints hold, and whether this class of token is valid for the operation at hand.

Cybersecurity 13 Sep 2026 8 min read

HTTP Request Smuggling Begins With Parser Disagreement

HTTP Request Smuggling Begins With Parser Disagreement A reverse proxy can reject malicious paths, normalize headers, enforce authentication, and still pass an ambiguous HTTP message to a backend that interprets the same bytes differently. At that point, the security boundary is no longer defined by either component in isolation. It is defined by the gap between their parsers. HTTP request smuggling exploits that gap. The attacker is not primarily defeating TLS or guessing a credential. The useful primitive is message-boundary disagreement: one system decides that a request ends at one byte, while the next system decides that it ends somewhere else. Bytes treated as a body by the front end can become the start of another request at the origin, or the reverse can occur.

Cybersecurity 13 Sep 2026 7 min read

HTTP Request Boundaries Fail When Intermediaries Disagree

A front-end proxy can accept a byte stream as one HTTP request while the server behind it interprets part of the same stream as the beginning of another. At that point, the disagreement is no longer a parsing curiosity. Bytes supplied by one connection can change how a later request is framed, creating a route around controls that assumed every component agreed on request boundaries. HTTP request smuggling sits in this gap between parsers. The vulnerable condition is not simply the presence of a Content-Length or Transfer-Encoding header. It is a chain in which two adjacent HTTP implementations assign different structure to the same traffic, then reuse a connection or otherwise preserve enough state for the disagreement to affect subsequent processing.

Cybersecurity 13 Sep 2026 7 min read

Host Header Trust Can Turn Application URLs Into Attacker Input

A web application can serve the correct page, validate the correct account, and still emit a security-sensitive link pointing at a domain controlled by somebody else. The failure often begins with a value that looks operational rather than privileged: the HTTP host presented with the request. Modern deployments make host handling deceptively complex. A browser sends authority information, an edge proxy may rewrite it, another proxy may add a forwarding header, and the application framework eventually exposes a convenient property representing the apparent host. That property is useful for routing and URL generation. It is dangerous when the application treats it as an authenticated statement about its own public identity.

Cybersecurity 13 Sep 2026 8 min read

DNS Rebinding Turns Browser Reachability Into a Security Boundary

A service bound to a private address often feels insulated from the public web. An administrative panel on a home router, a development daemon on a laptop, or an internal HTTP endpoint may have no public route at all. Yet a browser on the same network can often reach it, and that browser also processes content from arbitrary public sites. DNS rebinding exploits the seam between those facts. A hostile site can use a domain it controls, arrange for that name to resolve to different addresses over time, and attempt to make browser requests under one web origin reach a service that was never intended to receive traffic from public content.

Cybersecurity 13 Sep 2026 6 min read

DNS Rebinding Crosses the Browser Network Boundary

A browser tab can begin its life talking to a public server and, moments later, send requests under the same hostname to a device on a private network. No browser exploit is required for that transition. DNS can supply the change. That property sits at the center of DNS rebinding. The attack is easy to reduce to a slogan about DNS answers changing, but the security consequence comes from a deeper mismatch. Browsers identify web origins primarily through scheme, host, and port. Network services often make trust decisions from the destination address, interface, or apparent local reachability. Rebinding creates a point where those two models no longer describe the same security boundary.

Cybersecurity 13 Sep 2026 8 min read

Deserialization Can Turn Data Into Execution

Deserialization Can Turn Data Into Execution A serialized object can look like inert application state right up to the moment a runtime reconstructs it. At that boundary, a compact sequence of bytes may stop behaving like ordinary data and begin selecting classes, invoking reconstruction hooks, resolving references, allocating complex object graphs, or activating framework machinery. That distinction matters whenever serialized state crosses a trust boundary. The risky property is not simply that an attacker can submit malformed input. Many native serialization systems preserve enough information about program objects that decoding carries semantics far beyond parsing JSON fields into a plain record. In the wrong context, deserialization becomes a mechanism for asking the application to assemble behavior chosen partly by the input.

Cybersecurity 13 Sep 2026 9 min read

Dangling DNS Records Preserve Authority After Services Disappear

A product team deletes an old hosted application, the cloud resource disappears, and the monthly bill stops. The public hostname often survives. Months later, preview.example.com still resolves through a CNAME to a provider-specific name associated with a resource that no longer exists. From the organisation’s perspective the application is gone. From DNS’s perspective, authority is still being delegated. That mismatch creates the conditions associated with subdomain takeover. The important detail is not simply that a DNS record points at a dead destination. Exploitation also depends on the external service allowing another party to claim the referenced name, tenant, site, bucket, project, or equivalent routing identifier. A dangling record is therefore evidence of stale control; whether it is directly exploitable depends on the provider’s ownership model.

Cybersecurity 13 Sep 2026 7 min read

Content Security Policy Turns Script Trust Into an Explicit Boundary

A web application can escape database queries correctly, authenticate every API request, and still hand an attacker code execution in the browser through one unsafe rendering path. The browser is unusually permissive by design: HTML can load scripts from remote origins, inline blocks can execute code, and dynamic DOM operations can turn strings into active content. Content Security Policy, or CSP, gives an application a second control plane for that execution environment.

Cybersecurity 13 Sep 2026 8 min read

Client Certificates Need an Identity Lifecycle

Client Certificates Need an Identity Lifecycle A service can reject every connection that lacks a trusted client certificate and still have a weak machine-identity boundary. The cryptographic handshake may be sound while the surrounding identity system quietly grants stale, ambiguous, or overly broad authority. Mutual TLS, commonly shortened to mTLS, gives both sides of a TLS connection a chance to authenticate with certificates. On the server side, this resembles familiar HTTPS authentication. On the client side, the server requests a certificate and verifies the presented chain and proof of private-key possession. That is a strong primitive. It does not, by itself, decide what the authenticated workload is allowed to be.

Cybersecurity 13 Sep 2026 7 min read

Certificate Transparency Turns Issuance Into Observable Evidence

Certificate Transparency Turns Issuance Into Observable Evidence A certificate authority can issue a perfectly valid TLS certificate for the wrong organization. The signature can verify, the chain can terminate at a trusted root, the hostname can match, and the certificate can still represent an issuance event the domain operator never intended. Certificate Transparency, commonly abbreviated CT, changes that failure from a largely private event into observable evidence. Publicly trusted certificate authorities submit certificate material to append-only logs, and clients can require evidence that a certificate has been recorded in suitable logs. Domain operators and security services can then watch those logs for names they control.

Cybersecurity 13 Sep 2026 6 min read

Certificate Transparency Turns Certificate Issuance Into an Observable Event

A certificate can be valid in every cryptographic sense and still be a security incident for the organization named in it. The issuing certificate authority may have followed its validation process, the signature may verify, and browsers may accept the chain. If the certificate was requested through a compromised account, an unintended validation path, or an infrastructure mistake, none of those properties establish that the domain operator expected it to exist.

Cybersecurity 13 Sep 2026 8 min read

Certificate Revocation Is a Distributed Freshness Problem

Certificate Revocation Is a Distributed Freshness Problem A private key can be exposed at 10:00, its certificate can be revoked at 10:15, and some clients can still face a harder question at 10:16: do they possess current enough evidence to reject it? That gap is easy to miss when revocation is described as a property attached to a certificate. X.509 certificates are signed objects with validity periods; changing the certificate after issuance would invalidate its signature. Revocation therefore lives outside the certificate itself. A relying party needs separate status information, needs that information to be sufficiently recent, and needs a policy for cases in which status cannot be obtained.

Cybersecurity 13 Sep 2026 8 min read

Cache Keys Define a Security Boundary at Shared Proxies

A reverse proxy can receive two HTTP requests that look equivalent to its cache while the application behind it treats them as different. That disagreement is more than a performance bug. If an attacker can place a response generated from one request variant into a shared cache entry used by other clients, a request that originally affected one connection can acquire a much larger audience. This is the core security tension in web cache poisoning. The cache key defines which requests are considered interchangeable. The origin application defines which request properties can alter a response. Security depends on those two models staying aligned across proxies, frameworks, routing rules, and application code.

Cybersecurity 13 Sep 2026 7 min read

Cache Keys Are Security Boundaries at the HTTP Edge

Cache Keys Are Security Boundaries at the HTTP Edge A reverse proxy can receive two requests that an application considers different and still treat them as the same cache entry. That gap is enough to turn a response intended for one request context into a response served to many others. The issue is not caching in isolation. It is disagreement about identity. Applications make decisions from headers, query parameters, cookies, paths, host information, and sometimes values added by upstream infrastructure. A shared cache uses a smaller set of inputs to decide whether a stored response matches a later request. If an input changes application behavior but does not participate in the cache key, that input crosses a security boundary without being represented in cache identity.