CWE-598 Sensitive Query Strings: Why Secrets Don't Belong in URLs
Passwords and tokens in a GET query string end up in logs, history, and referrer headers. How CWE-598 happens, what it leaks, and how to move secrets out of the URL.
Deep dives, practical guides, and incident analyses from engineers who build Safeguard. No fluff, no vendor FUD — just what you need to ship secure software.
Passwords and tokens in a GET query string end up in logs, history, and referrer headers. How CWE-598 happens, what it leaks, and how to move secrets out of the URL.
In Java, == on strings compares objects, not text. When that result feeds a security decision, a style slip becomes a vulnerability. What to use instead.
Using == on objects compares identity, not value, so equal objects look different. A classic Java bug that turns into a security bug when it guards a decision.
Under load, J2EE containers flush session objects to disk. If those objects are not Serializable, requests fail and data corrupts. How to avoid it.
Modify an SSL_CTX after connections were created from it and older connections may be affected, including skipping authentication. Set the context up first.
Keys and passwords held in memory the OS can swap to disk may outlive your process. Why mlock and VirtualLock are not the whole answer.
Calling free() on a stack, global, or interior pointer corrupts the allocator and can give attackers a write primitive. See how it happens and how to stop it.
CWE-59 is what happens when code opens a file by name and the name turns out to be a link to something else. Causes, checks and fixes.
Some security functions exist only on newer OS versions, and others are removed for safety reasons. CWE-589 is what happens when code assumes they are always there.
Weekly insights on software supply chain security, delivered to your inbox.
Your first fix PR is minutes away.
No sales call required, even your agent can complete the purchase over MCP.