<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Race Conditions on Nalar</title>
    <link>https://nalar.dev/tags/race-conditions/</link>
    <description>Recent content in Race Conditions on Nalar</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 05 Sep 2026 00:00:00 +0700</lastBuildDate>
    <atom:link href="https://nalar.dev/tags/race-conditions/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Recheck Authorization at the Point of Use</title>
      <link>https://nalar.dev/recheck-authorization-at-the-point-of-use/</link>
      <pubDate>Sat, 05 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/recheck-authorization-at-the-point-of-use/</guid>
      <description>&lt;p&gt;An application can perform a correct authorization check and still allow an action that should no longer be permitted. The problem appears when the application checks authority, waits or performs other work, and only later changes protected state. During that gap, the facts that justified the decision can change.&lt;/p&gt;&#xA;&lt;p&gt;For example, a worker may confirm that a user can modify a project, queue the requested change, and apply it several seconds later. If the user&amp;rsquo;s project access is revoked before the worker runs, using the earlier decision can let revoked authority survive longer than intended.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Make Security-Sensitive State Changes Atomic</title>
      <link>https://nalar.dev/make-security-sensitive-state-changes-atomic/</link>
      <pubDate>Fri, 04 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/make-security-sensitive-state-changes-atomic/</guid>
      <description>&lt;p&gt;Security checks can be individually correct and still fail when two requests run at the same time. A request checks that a recovery code is unused, a withdrawal is within a limit, or an approval is still pending. Before it records the state change, another request performs the same check against the same old state. Both requests then proceed even though the rule was meant to allow only one.&lt;/p&gt;&#xA;&lt;p&gt;This is a &lt;strong&gt;race condition&lt;/strong&gt;: correctness depends on the relative timing of concurrent operations. A common form is a time-of-check to time-of-use problem, often shortened to TOCTOU, where the fact established by a check can become false before the protected action uses it.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
