<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://theaq.blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://theaq.blog/" rel="alternate" type="text/html" /><updated>2026-08-18T04:42:39+00:00</updated><id>https://theaq.blog/feed.xml</id><title type="html">TheArtificialQ Blog</title><subtitle>Random notes from a Red Teamer</subtitle><entry><title type="html">Evaluating GPT-5.6 on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/17/solving-htb-challenges-with-openai-gpt-5.6.html" rel="alternate" type="text/html" title="Evaluating GPT-5.6 on Hack The Box Challenges" /><published>2026-08-17T06:10:31+00:00</published><updated>2026-08-17T06:10:31+00:00</updated><id>https://theaq.blog/2026/08/17/solving-htb-challenges-with-openai-gpt-5.6</id><content type="html" xml:base="https://theaq.blog/2026/08/17/solving-htb-challenges-with-openai-gpt-5.6.html"><![CDATA[<p>Until now, I had tested only the GPT-5.6 Luna model because the two more advanced GPT-5.6 models, Terra and Sol, rejected my test prompts, flagging them as a “possible cybersecurity risk.” Fortunately, this issue turned out to have an easy solution, so I could finally spend a couple of days testing the whole GPT-5.6 family for my <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<h2 id="trusted-access-for-cyber-program">Trusted Access for Cyber program</h2>

<p>When I started testing a week or so ago, I couldn’t run my test harness with the GPT-5.6 Terra or Sol models - I kept getting this error: <code class="language-plaintext highlighter-rouge">This content was flagged for possible cybersecurity risk. If this seems wrong, try rephrasing your request. To get authorized for security work, join the Trusted Access for Cyber program: https://chatgpt.com/cyber</code>. At first, I gave up. Trying to join the Trusted Access for Cyber program seemed pointless to me. I was sure the whole program had been created just to give desperate OpenAI users some hope and that my application would end up in <code class="language-plaintext highlighter-rouge">/dev/null</code>.</p>

<p>But then I discovered <a href="https://ai.georgeliu.com/p/chatgpt-codex-flagged-my-security">some articles</a> that gave me real hope, so I clicked on the <a href="https://chatgpt.com/cyber">https://chatgpt.com/cyber</a> link. As it turned out, joining the Trusted Access for Cyber program only involved going through a KYC process similar to the one required when opening a new bank account. After I joined the program, only one of my prompts was rejected, which was a significant improvement.</p>

<h2 id="tested-models">Tested models</h2>

<p>I tested the following GPT-5.6 models. Click on a model name to see its detailed test results:</p>

<ul>
  <li><a href="/2026/08/10/solving-htb-challenges-with-openai-gpt-5.6-luna.html">GPT-5.6 Luna</a></li>
  <li><a href="/2026/08/10/solving-htb-challenges-with-openai-gpt-5.6-luna-pro.html">GPT-5.6 Luna Pro</a></li>
  <li><a href="/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-terra.html">GPT-5.6 Terra</a></li>
  <li><a href="/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-terra-pro.html">GPT-5.6 Terra Pro</a></li>
  <li><a href="/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-sol.html">GPT-5.6 Sol</a></li>
</ul>

<blockquote>
  <p><strong>GPT-5.6 Luna Pro</strong> and <strong>GPT-5.6 Terra Pro</strong> are models hosted on <a href="https://openrouter.ai">OpenRouter.io</a>, and they are simply the <strong>Luna</strong> and <strong>Terra</strong> models served with <code class="language-plaintext highlighter-rouge">reasoning.mode</code> set to <code class="language-plaintext highlighter-rouge">pro</code>.</p>
</blockquote>

<p>I also tested the <strong>GPT-5.6 Sol Pro</strong> model, but the results were, well, weird. The <strong>Sol Pro</strong> version generated a lot of tokens and took a long time on each step, but that did not always translate into better results. I also have a hard limit of $15 on the cost of a single test run, and this model hit that limit quite often. I’m not sure if “overthinking” is the best technical term here, but that’s what it looked like to me.</p>

<p>In the end, I decided not to include this model version in my results, but if there is one thing I can say based on my partial testing, it is that <strong>GPT-5.6 Sol Pro</strong> is much more expensive than <strong>GPT-5.6 Sol</strong>.</p>

<h2 id="results">Results</h2>

<p>Let’s start with this chart. The five GPT-5.6 models tested for this post are highlighted in gold, so you can see their results in the context of the other models I have tested. The vertical axis shows the score on my <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
, while the horizontal axis shows the median cost per test (mind you, this axis uses a logarithmic scale).</p>

<object data="/assets/images/cost-vs-benchmark-score-gpt-5.6.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart (GPT 5.6)">
  <img src="/assets/images/cost-vs-benchmark-score-gpt-5.6.svg" alt="Cost vs. Benchmark Score (GPT 5.6)" width="800" height="550" />
</object>

<p>Before I start interpreting these results, let me also show you a table with more statistics for each model.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Luna</th>
      <th style="text-align: right">Luna Pro</th>
      <th style="text-align: right">Terra</th>
      <th style="text-align: right">Terra Pro</th>
      <th style="text-align: right">Sol</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">16</td>
      <td style="text-align: right">16</td>
      <td style="text-align: right">16</td>
      <td style="text-align: right">16</td>
      <td style="text-align: right">16</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">8</td>
      <td style="text-align: right">11</td>
      <td style="text-align: right">12</td>
      <td style="text-align: right">14</td>
      <td style="text-align: right">15</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">8</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">31.6%</td>
      <td style="text-align: right">51.3%</td>
      <td style="text-align: right">64.6%</td>
      <td style="text-align: right">75.1%</td>
      <td style="text-align: right">87.2%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">17.5</td>
      <td style="text-align: right">21.5</td>
      <td style="text-align: right">16.5</td>
      <td style="text-align: right">11</td>
      <td style="text-align: right">8.5</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.02</td>
      <td style="text-align: right">$0.10</td>
      <td style="text-align: right">$0.24</td>
      <td style="text-align: right">$0.91</td>
      <td style="text-align: right">$0.29</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:04:38</td>
      <td style="text-align: right">00:08:55</td>
      <td style="text-align: right">00:03:16</td>
      <td style="text-align: right">00:08:22</td>
      <td style="text-align: right">00:02:05</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.34M</td>
      <td style="text-align: right">1.50M</td>
      <td style="text-align: right">0.23M</td>
      <td style="text-align: right">0.64M</td>
      <td style="text-align: right">0.09M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.07M</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.03M</td>
      <td style="text-align: right">0.00M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">4.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">28.0</td>
      <td style="text-align: right">36.5</td>
      <td style="text-align: right">15.5</td>
      <td style="text-align: right">13.5</td>
      <td style="text-align: right">8.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>

<h2 id="what-i-take-from-these-results">What I take from these results</h2>

<p>At the low-cost end, <strong>Luna</strong> is in a category of its own. A median challenge run cost just $0.02, which is remarkably cheap even by LLM standards. Its 31.6% benchmark score was the lowest in this comparison, but that doesn’t tell the whole story: it still found the correct flag in seven of the eight Very Easy and Easy challenges. I see it as an ideal first-pass model - let <strong>Luna</strong> take a shot at the task, and bring in something more powerful only when it reaches its limits.</p>

<p>And then there is <strong>Sol</strong>. With a score of 87.2%, <strong>GPT-5.6 Sol achieved the best score in my benchmark so far</strong>. It solved 15 of 16 challenges, including three out of four Hard ones. What makes this result even more impressive is that its median cost was only $0.29 per challenge - just $0.05 more than <strong>Terra</strong> and less than one-third of <strong>Terra Pro</strong>’s $0.91. It was also the fastest model in this comparison, with a median of 8.5 steps and 2 minutes and 5 seconds per challenge. The only blemish in its results was a false positive on the remaining Hard challenge, which no model in my benchmark has solved so far. But this was not a random or nonsensical guess: the submitted flag was plausible and differed only slightly from the correct one. So even <strong>Sol</strong>’s only failure was actually a near miss.</p>

<p>The results of the Pro variants are a bit more complicated. Setting <code class="language-plaintext highlighter-rouge">reasoning.mode</code> to <code class="language-plaintext highlighter-rouge">pro</code> improved both underlying models: <strong>Luna Pro</strong> gained 19.7 percentage points over <strong>Luna</strong>, and <strong>Terra Pro</strong> gained 10.5 points over <strong>Terra</strong>. But this extra reasoning came at a price. <strong>Luna Pro</strong> was five times more expensive than <strong>Luna</strong>, while <strong>Terra Pro</strong> was almost four times more expensive than <strong>Terra</strong>. Both Pro variants also used roughly three to four times as many input tokens per challenge and took around two to three times as long. And in both cases, the next model tier still performed better than the Pro version of the lower tier: <strong>Terra</strong> beat <strong>Luna Pro</strong>, and <strong>Sol</strong> beat <strong>Terra Pro</strong>.</p>

<p>The differences become most visible as the challenges get harder. Every model scored at least 97% on Very Easy challenges, so paying for the most powerful model there doesn’t make much sense. On Medium challenges, however, the scores ranged from 24.7% for <strong>Luna</strong> to 97.6% for <strong>Sol</strong>. On Hard challenges, they ranged from 0% for <strong>Luna</strong> to 71.8% for <strong>Sol</strong>.</p>

<p>So my practical conclusion is quite simple. If I had a straightforward task or wanted to run a large number of inexpensive experiments, I would start with <strong>Luna</strong>. If the task were difficult and getting the correct result mattered more than saving every last cent, I would choose <strong>Sol</strong>. <strong>Luna Pro</strong> is still an interesting and affordable middle ground, but <strong>Terra</strong> is difficult to recommend when <strong>Sol</strong> costs only slightly more and performs much better. <strong>Terra Pro</strong> makes even less sense to me: in these tests, <strong>Sol</strong> was more capable, faster, and much cheaper.</p>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[Until now, I had tested only the GPT-5.6 Luna model because the two more advanced GPT-5.6 models, Terra and Sol, rejected my test prompts, flagging them as a “possible cybersecurity risk.” Fortunately, this issue turned out to have an easy solution, so I could finally spend a couple of days testing the whole GPT-5.6 family for my HTB-Challenger BenchmarkThe HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the HTB-Challenger Benchmark page. .]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating Muse Spark 1.2 on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/17/solving-htb-challenges-with-meta-muse-spark-1.2.html" rel="alternate" type="text/html" title="Evaluating Muse Spark 1.2 on Hack The Box Challenges" /><published>2026-08-17T05:59:08+00:00</published><updated>2026-08-17T05:59:08+00:00</updated><id>https://theaq.blog/2026/08/17/solving-htb-challenges-with-meta-muse-spark-1.2</id><content type="html" xml:base="https://theaq.blog/2026/08/17/solving-htb-challenges-with-meta-muse-spark-1.2.html"><![CDATA[<p>I have to admit something: I have opinions. That’s not exactly a character flaw, but mixing opinions with facts and hard data is rarely a good idea. Sometimes, though, keeping the two separate is difficult.</p>

<p>Like now.</p>

<p>Meta is back, this time with <strong>Muse Spark 1.2</strong>, an ambitious new model. Unfortunately, I have strong opinions about Meta and its business model, and I would rather not risk letting those opinions color my usual discussion of the test results. So this time, I’ve decided not to offer any commentary. Here are the hard numbers from my testing. I’ll leave the interpretation to you.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p><img src="/assets/images/meta-muse-spark-1.2-20260805-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/meta-muse-spark-1.2-20260805-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/meta-muse-spark-1.2-20260805-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 11</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 3</li>
  <li><strong><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr>:</strong> 1</li>
  <li><strong>Benchmark score:</strong> 50.4%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">32</td>
      <td style="text-align: right">723</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.48</td>
      <td style="text-align: right">$12.66</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:05:36</td>
      <td style="text-align: right">02:21:52</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.96M</td>
      <td style="text-align: right">25.86M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.03M</td>
      <td style="text-align: right">1.15M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">44</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">29.0</td>
      <td style="text-align: right">667</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">14</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">94.3%</td>
      <td style="text-align: right">94.8%</td>
      <td style="text-align: right">49.3%</td>
      <td style="text-align: right">18.1%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">22</td>
      <td style="text-align: right">22.5</td>
      <td style="text-align: right">55.5</td>
      <td style="text-align: right">96.5</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.22</td>
      <td style="text-align: right">$0.18</td>
      <td style="text-align: right">$0.89</td>
      <td style="text-align: right">$1.79</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:02:36</td>
      <td style="text-align: right">00:05:36</td>
      <td style="text-align: right">00:08:19</td>
      <td style="text-align: right">00:20:31</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.58M</td>
      <td style="text-align: right">0.36M</td>
      <td style="text-align: right">1.80M</td>
      <td style="text-align: right">3.73M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.06M</td>
      <td style="text-align: right">0.14M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">18.0</td>
      <td style="text-align: right">18.5</td>
      <td style="text-align: right">48.5</td>
      <td style="text-align: right">92.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.5</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[I have to admit something: I have opinions. That’s not exactly a character flaw, but mixing opinions with facts and hard data is rarely a good idea. Sometimes, though, keeping the two separate is difficult. Like now. Meta is back, this time with Muse Spark 1.2, an ambitious new model. Unfortunately, I have strong opinions about Meta and its business model, and I would rather not risk letting those opinions color my usual discussion of the test results. So this time, I’ve decided not to offer any commentary. Here are the hard numbers from my testing. I’ll leave the interpretation to you.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating GPT-5.6 Sol on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-sol.html" rel="alternate" type="text/html" title="Evaluating GPT-5.6 Sol on Hack The Box Challenges" /><published>2026-08-16T16:10:31+00:00</published><updated>2026-08-16T16:10:31+00:00</updated><id>https://theaq.blog/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-sol</id><content type="html" xml:base="https://theaq.blog/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-sol.html"><![CDATA[<blockquote>
  <p>For some personal observations about this model, please see the <a href="/2026/08/17/solving-htb-challenges-with-openai-gpt-5.6.html">Solving Hack The Box Challenges with GPT-5.6</a> post.</p>
</blockquote>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<hr />

<p><img src="/assets/images/openai-gpt-5.6-sol-20260709-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/openai-gpt-5.6-sol-20260709-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/openai-gpt-5.6-sol-20260709-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 15</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr>:</strong> 0</li>
  <li><strong>Benchmark score:</strong> 87.2%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">8.5</td>
      <td style="text-align: right">274</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.29</td>
      <td style="text-align: right">$11.82</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:02:05</td>
      <td style="text-align: right">01:06:14</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.09M</td>
      <td style="text-align: right">7.88M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.11M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">27</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">12</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">8.5</td>
      <td style="text-align: right">271</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">7</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">3</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">98.8%</td>
      <td style="text-align: right">96.7%</td>
      <td style="text-align: right">97.6%</td>
      <td style="text-align: right">71.8%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">6</td>
      <td style="text-align: right">10</td>
      <td style="text-align: right">8.5</td>
      <td style="text-align: right">25</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.10</td>
      <td style="text-align: right">$0.18</td>
      <td style="text-align: right">$0.32</td>
      <td style="text-align: right">$1.49</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:00:49</td>
      <td style="text-align: right">00:01:35</td>
      <td style="text-align: right">00:02:07</td>
      <td style="text-align: right">00:06:35</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.03M</td>
      <td style="text-align: right">0.05M</td>
      <td style="text-align: right">0.11M</td>
      <td style="text-align: right">1.08M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.01M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">4.0</td>
      <td style="text-align: right">8.0</td>
      <td style="text-align: right">9.5</td>
      <td style="text-align: right">31.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[For some personal observations about this model, please see the Solving Hack The Box Challenges with GPT-5.6 post.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating GPT-5.6 Terra on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-terra.html" rel="alternate" type="text/html" title="Evaluating GPT-5.6 Terra on Hack The Box Challenges" /><published>2026-08-16T16:10:31+00:00</published><updated>2026-08-16T16:10:31+00:00</updated><id>https://theaq.blog/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-terra</id><content type="html" xml:base="https://theaq.blog/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-terra.html"><![CDATA[<blockquote>
  <p>For some personal observations about this model, please see the <a href="/2026/08/17/solving-htb-challenges-with-openai-gpt-5.6.html">Solving Hack The Box Challenges with GPT-5.6</a> post.</p>
</blockquote>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<hr />

<p><img src="/assets/images/openai-gpt-5.6-terra-20260709-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/openai-gpt-5.6-terra-20260709-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/openai-gpt-5.6-terra-20260709-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 12</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 4</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr>:</strong> 0</li>
  <li><strong>Benchmark score:</strong> 64.6%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">16.5</td>
      <td style="text-align: right">428</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.24</td>
      <td style="text-align: right">$10.38</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:03:16</td>
      <td style="text-align: right">02:29:17</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.23M</td>
      <td style="text-align: right">16.61M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.26M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">18</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">6</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">15.5</td>
      <td style="text-align: right">418</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">6</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">3</td>
      <td style="text-align: right">3</td>
      <td style="text-align: right">2</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">2</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">98.9%</td>
      <td style="text-align: right">73.8%</td>
      <td style="text-align: right">72.1%</td>
      <td style="text-align: right">45.9%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">6</td>
      <td style="text-align: right">13</td>
      <td style="text-align: right">23.5</td>
      <td style="text-align: right">32</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.05</td>
      <td style="text-align: right">$0.14</td>
      <td style="text-align: right">$0.45</td>
      <td style="text-align: right">$0.89</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:00:39</td>
      <td style="text-align: right">00:02:52</td>
      <td style="text-align: right">00:05:19</td>
      <td style="text-align: right">00:08:06</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.03M</td>
      <td style="text-align: right">0.12M</td>
      <td style="text-align: right">0.70M</td>
      <td style="text-align: right">1.59M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.02M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">4.5</td>
      <td style="text-align: right">11.0</td>
      <td style="text-align: right">22.5</td>
      <td style="text-align: right">35.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[For some personal observations about this model, please see the Solving Hack The Box Challenges with GPT-5.6 post.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating GPT-5.6 Terra Pro on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-terra-pro.html" rel="alternate" type="text/html" title="Evaluating GPT-5.6 Terra Pro on Hack The Box Challenges" /><published>2026-08-16T16:10:31+00:00</published><updated>2026-08-16T16:10:31+00:00</updated><id>https://theaq.blog/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-terra-pro</id><content type="html" xml:base="https://theaq.blog/2026/08/16/solving-htb-challenges-with-openai-gpt-5.6-terra-pro.html"><![CDATA[<blockquote>
  <p>For some personal observations about this model, please see the <a href="/2026/08/17/solving-htb-challenges-with-openai-gpt-5.6.html">Solving Hack The Box Challenges with GPT-5.6</a> post.</p>
</blockquote>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<hr />

<p><img src="/assets/images/openai-gpt-5.6-terra-pro-20260709-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/openai-gpt-5.6-terra-pro-20260709-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/openai-gpt-5.6-terra-pro-20260709-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 14</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr>:</strong> 0</li>
  <li><strong>Benchmark score:</strong> 75.1%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">11</td>
      <td style="text-align: right">353</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.91</td>
      <td style="text-align: right">$29.93</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:08:22</td>
      <td style="text-align: right">02:30:03</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.64M</td>
      <td style="text-align: right">22.53M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.03M</td>
      <td style="text-align: right">0.83M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">20</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">18</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">13.5</td>
      <td style="text-align: right">351</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">4</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">2</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">97.3%</td>
      <td style="text-align: right">97.1%</td>
      <td style="text-align: right">94.0%</td>
      <td style="text-align: right">44.4%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">5</td>
      <td style="text-align: right">9.5</td>
      <td style="text-align: right">20.5</td>
      <td style="text-align: right">29.5</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.16</td>
      <td style="text-align: right">$0.53</td>
      <td style="text-align: right">$1.95</td>
      <td style="text-align: right">$2.46</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:01:10</td>
      <td style="text-align: right">00:03:35</td>
      <td style="text-align: right">00:09:53</td>
      <td style="text-align: right">00:18:01</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.08M</td>
      <td style="text-align: right">0.39M</td>
      <td style="text-align: right">1.39M</td>
      <td style="text-align: right">1.98M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.06M</td>
      <td style="text-align: right">0.07M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">4.0</td>
      <td style="text-align: right">9.0</td>
      <td style="text-align: right">19.5</td>
      <td style="text-align: right">31.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[For some personal observations about this model, please see the Solving Hack The Box Challenges with GPT-5.6 post.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating Grok 4.6 on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/12/solving-htb-challenges-with-x-ai-grok-4.6.html" rel="alternate" type="text/html" title="Evaluating Grok 4.6 on Hack The Box Challenges" /><published>2026-08-12T20:05:34+00:00</published><updated>2026-08-12T20:05:34+00:00</updated><id>https://theaq.blog/2026/08/12/solving-htb-challenges-with-x-ai-grok-4.6</id><content type="html" xml:base="https://theaq.blog/2026/08/12/solving-htb-challenges-with-x-ai-grok-4.6.html"><![CDATA[<p>When I tested an older version of Grok <a href="/2026/04/14/agentic-ai-pentesting-with-strix-results-from-18-llm-models.html">this spring</a>, my only comment was blunt: “grok-4.20 was useless.” So when Grok 4.5 was released a month ago and started receiving very positive reviews, I was quite surprised.</p>

<p>Today, Grok 4.6 was released and I’ve finally had a chance to test it against HTB challenges, and the team behind it deserves an apology. I’m not sure what the folks at xAI did, but the performance increase over the older version is jaw-dropping.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>During my testing, I watched this model crack one HTB challenge after another in a steady, confident way, and the final boss fight against the last two challenges was exhilarating, even though it was ultimately unsuccessful. In the end, with a 76.1% score, it’s the undisputed new king of my leaderboard - not only because of its results, but also because of its speed (it had the fewest steps per challenge of all the models I’ve tested so far) and cost. Look at the <strong>Cost vs. Benchmark Score</strong> graph on the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
 page to see what I mean.</p>

<p>So let’s forget that useless old version. For me, <strong>Grok 4.6</strong> is currently the best model I’ve tested on offensive-security challenges.</p>

<hr />

<p><img src="/assets/images/x-ai-grok-4.6-20260810-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/x-ai-grok-4.6-20260810-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/x-ai-grok-4.6-20260810-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 14</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 2</li>
  <li><strong><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr>:</strong> 0</li>
  <li><strong>Benchmark score:</strong> 76.1%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">14</td>
      <td style="text-align: right">452</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.23</td>
      <td style="text-align: right">$17.31</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:03:38</td>
      <td style="text-align: right">02:45:35</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.23M</td>
      <td style="text-align: right">20.29M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.47M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">41</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">35</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">10.0</td>
      <td style="text-align: right">403</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">15</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">2</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">2</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">97.5%</td>
      <td style="text-align: right">98.4%</td>
      <td style="text-align: right">93.6%</td>
      <td style="text-align: right">46.6%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">11.5</td>
      <td style="text-align: right">11.5</td>
      <td style="text-align: right">19</td>
      <td style="text-align: right">63.5</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.10</td>
      <td style="text-align: right">$0.14</td>
      <td style="text-align: right">$0.58</td>
      <td style="text-align: right">$2.89</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:01:26</td>
      <td style="text-align: right">00:03:00</td>
      <td style="text-align: right">00:09:39</td>
      <td style="text-align: right">00:24:56</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.10M</td>
      <td style="text-align: right">0.12M</td>
      <td style="text-align: right">0.61M</td>
      <td style="text-align: right">3.50M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.08M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">4.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">9.0</td>
      <td style="text-align: right">8.0</td>
      <td style="text-align: right">16.5</td>
      <td style="text-align: right">55.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">1.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[When I tested an older version of Grok this spring, my only comment was blunt: “grok-4.20 was useless.” So when Grok 4.5 was released a month ago and started receiving very positive reviews, I was quite surprised. Today, Grok 4.6 was released and I’ve finally had a chance to test it against HTB challenges, and the team behind it deserves an apology. I’m not sure what the folks at xAI did, but the performance increase over the older version is jaw-dropping.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating DeepSeek V4 Pro on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/12/solving-htb-challenges-with-deepseek-deepseek-v4-pro.html" rel="alternate" type="text/html" title="Evaluating DeepSeek V4 Pro on Hack The Box Challenges" /><published>2026-08-12T09:11:15+00:00</published><updated>2026-08-12T09:11:15+00:00</updated><id>https://theaq.blog/2026/08/12/solving-htb-challenges-with-deepseek-deepseek-v4-pro</id><content type="html" xml:base="https://theaq.blog/2026/08/12/solving-htb-challenges-with-deepseek-deepseek-v4-pro.html"><![CDATA[<p>DeepSeek V4 Pro was the best (and most expensive) LLM I tested with <a href="/2026/04/25/deepseek-v4-with-strix-a-quick-test.html">Strix a few months ago</a>. After the heartbreaking results of its smaller sibling, <a href="/2026/08/11/solving-htb-challenges-with-deepseek-deepseek-v4-flash-0731.html">DeepSeek V4 Flash 0731</a>, in my HTB-Challenger tests, I was curious to see how the Pro version would handle the new challenges.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>The results of <strong>DeepSeek V4 Pro</strong> in my testing were, well, not great and not terrible. On the one hand, it didn’t have the basic flaws I observed when testing <strong>DeepSeek V4 Flash 0731</strong>: it didn’t submit any incorrect flags, and it used the available tools without any issues. On the other hand, its final score was comparable to that of <a href="/2026/08/10/solving-htb-challenges-with-openai-gpt-5.6-luna.html">GPT-5.6 Luna</a>, whose median cost per test was 17 times lower.</p>

<p>The performance gap between <strong>DeepSeek V4 Pro</strong> and the leaders of my benchmark was also quite large. I’m afraid that’s a sign of just how quickly things have progressed over the last few months. DeepSeek V4 Pro was released four months ago, which feels like an eternity now that we’re getting better and better models almost every month.</p>

<hr />

<p><img src="/assets/images/deepseek-deepseek-v4-pro-20260423-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/deepseek-deepseek-v4-pro-20260423-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/deepseek-deepseek-v4-pro-20260423-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 8</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 8</li>
  <li><strong><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr>:</strong> 0</li>
  <li><strong>Benchmark score:</strong> 36.2%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">62.5</td>
      <td style="text-align: right">938</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.35</td>
      <td style="text-align: right">$11.84</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:06:19</td>
      <td style="text-align: right">03:34:35</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">1.93M</td>
      <td style="text-align: right">39.64M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.35M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.5</td>
      <td style="text-align: right">55</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">92</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">26.5</td>
      <td style="text-align: right">821</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">102</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">3</td>
      <td style="text-align: right">3</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">71.4%</td>
      <td style="text-align: right">72.0%</td>
      <td style="text-align: right">49.0%</td>
      <td style="text-align: right">0.0%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">24.5</td>
      <td style="text-align: right">21.5</td>
      <td style="text-align: right">56.5</td>
      <td style="text-align: right">100</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.11</td>
      <td style="text-align: right">$0.09</td>
      <td style="text-align: right">$0.61</td>
      <td style="text-align: right">$1.27</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:03:51</td>
      <td style="text-align: right">00:04:05</td>
      <td style="text-align: right">00:09:55</td>
      <td style="text-align: right">00:16:12</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.28M</td>
      <td style="text-align: right">0.22M</td>
      <td style="text-align: right">2.44M</td>
      <td style="text-align: right">5.25M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.02M</td>
      <td style="text-align: right">0.02M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.5</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">4.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">15.5</td>
      <td style="text-align: right">15.5</td>
      <td style="text-align: right">52.5</td>
      <td style="text-align: right">93.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">4.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[DeepSeek V4 Pro was the best (and most expensive) LLM I tested with Strix a few months ago. After the heartbreaking results of its smaller sibling, DeepSeek V4 Flash 0731, in my HTB-Challenger tests, I was curious to see how the Pro version would handle the new challenges.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Solving Htb Challenges With X Ai Grok 4.5</title><link href="https://theaq.blog/2026/08/12/solving-htb-challenges-with-x-ai-grok-4.5.html" rel="alternate" type="text/html" title="Solving Htb Challenges With X Ai Grok 4.5" /><published>2026-08-12T00:00:00+00:00</published><updated>2026-08-12T00:00:00+00:00</updated><id>https://theaq.blog/2026/08/12/solving-htb-challenges-with-x-ai-grok-4.5</id><content type="html" xml:base="https://theaq.blog/2026/08/12/solving-htb-challenges-with-x-ai-grok-4.5.html"><![CDATA[]]></content><author><name></name></author><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Evaluating DeepSeek V4 Flash 0731 on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/11/solving-htb-challenges-with-deepseek-deepseek-v4-flash-0731.html" rel="alternate" type="text/html" title="Evaluating DeepSeek V4 Flash 0731 on Hack The Box Challenges" /><published>2026-08-11T20:22:58+00:00</published><updated>2026-08-11T20:22:58+00:00</updated><id>https://theaq.blog/2026/08/11/solving-htb-challenges-with-deepseek-deepseek-v4-flash-0731</id><content type="html" xml:base="https://theaq.blog/2026/08/11/solving-htb-challenges-with-deepseek-deepseek-v4-flash-0731.html"><![CDATA[<p>I tested the previous version of DeepSeek V4 Flash, now called <strong>DeepSeek V4 Flash 0423</strong>, with <a href="/2026/04/25/deepseek-v4-with-strix-a-quick-test.html">Strix back in April</a>, and I absolutely fell in love with it. It delivered great results at a very low price and became my go-to model for most tasks that didn’t require the capabilities of frontier models.</p>

<p>That’s why I was looking forward to testing the latest, improved version on my <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
. But the results… Oh dear, oh dear, oh dear. Where do I even start?</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>Okay, let’s start with the results: they are bad. It solved just 2 out of 16 HTB challenges and scored 8.2% on my benchmark. But that’s not the worst or most puzzling thing about this model.</p>

<p>What worried me more was the number of false positives: it reported incorrect flags in 9 challenges. Sometimes these flags were completely made up, like <code class="language-plaintext highlighter-rouge">HTB{...}</code> or <code class="language-plaintext highlighter-rouge">HTB{dummy}</code>. In other cases, it submitted a fake flag from the attached source code or a random string that seemed to come out of nowhere. To put this into perspective, not one of the other models I’ve tested so far has reported even a single incorrect flag.</p>

<p>Another worrying thing was how badly this model used tools. Multiple times, I saw it call the <code class="language-plaintext highlighter-rouge">execute_command</code> tool with an empty command or with random text instead of a command. Similarly, it called the <code class="language-plaintext highlighter-rouge">write_file</code> tool several times with no file content. Again, none of the other models I’ve tested did this even once.</p>

<p>Yes, the model was cheap. The median test cost was a fraction of a cent, but in terms of results, I got what I paid for.</p>

<h2 id="so-what-went-wrong">So what went wrong?</h2>

<p>I spent quite a lot of time wondering why the results were so bad, especially after the previous version did so well in my Strix test. The best explanation I could come up with is this:</p>

<p>During my HTB-Challenger testing, I don’t provide the model with task-specific guidance in the form of skills or special instructions for each security domain. I also don’t tell it how to approach the job or validate its findings to avoid false positives. This is deliberate: the goal is to test the model’s built-in offensive-security capabilities.</p>

<p>This is very different from how tools like <a href="https://github.com/usestrix/strix">Strix</a> work. They provide the model with skills and detailed instructions that guide it through the different phases of testing and help it validate its findings. My best guess is that this extra scaffolding made the difference: DeepSeek V4 Flash can perform well within a highly structured agent, but it struggles badly when it has to plan its own approach, use tools reliably, and validate findings with much less guidance.</p>

<hr />

<p><img src="/assets/images/deepseek-deepseek-v4-flash-20260731-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/deepseek-deepseek-v4-flash-20260731-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/deepseek-deepseek-v4-flash-20260731-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 2</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 9</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 3</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 1</li>
  <li><strong><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr>:</strong> 1</li>
  <li><strong>Benchmark score:</strong> 8.2%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">14.5</td>
      <td style="text-align: right">443</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.00</td>
      <td style="text-align: right">$0.50</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:02:29</td>
      <td style="text-align: right">03:02:54</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.10M</td>
      <td style="text-align: right">11.71M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.44M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">2.5</td>
      <td style="text-align: right">56</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">33</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">13.5</td>
      <td style="text-align: right">360</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">30</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">3</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">2</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">24.9%</td>
      <td style="text-align: right">0.0%</td>
      <td style="text-align: right">19.1%</td>
      <td style="text-align: right">0.0%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">34</td>
      <td style="text-align: right">12</td>
      <td style="text-align: right">16.5</td>
      <td style="text-align: right">13.5</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.04</td>
      <td style="text-align: right">$0.00</td>
      <td style="text-align: right">$0.00</td>
      <td style="text-align: right">$0.03</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:24:50</td>
      <td style="text-align: right">00:01:42</td>
      <td style="text-align: right">00:01:06</td>
      <td style="text-align: right">00:10:41</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.69M</td>
      <td style="text-align: right">0.07M</td>
      <td style="text-align: right">0.15M</td>
      <td style="text-align: right">0.35M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.05M</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.00M</td>
      <td style="text-align: right">0.02M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">3.0</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">7.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">1.5</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">2.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">28.5</td>
      <td style="text-align: right">10.0</td>
      <td style="text-align: right">14.5</td>
      <td style="text-align: right">11.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">2.5</td>
      <td style="text-align: right">2.0</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">1.5</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[I tested the previous version of DeepSeek V4 Flash, now called DeepSeek V4 Flash 0423, with Strix back in April, and I absolutely fell in love with it. It delivered great results at a very low price and became my go-to model for most tasks that didn’t require the capabilities of frontier models. That’s why I was looking forward to testing the latest, improved version on my HTB-Challenger BenchmarkThe HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the HTB-Challenger Benchmark page. . But the results… Oh dear, oh dear, oh dear. Where do I even start?]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Evaluating Qwen3.8 Max on Hack The Box Challenges</title><link href="https://theaq.blog/2026/08/11/solving-htb-challenges-with-qwen-qwen3.8-max.html" rel="alternate" type="text/html" title="Evaluating Qwen3.8 Max on Hack The Box Challenges" /><published>2026-08-11T12:46:34+00:00</published><updated>2026-08-11T12:46:34+00:00</updated><id>https://theaq.blog/2026/08/11/solving-htb-challenges-with-qwen-qwen3.8-max</id><content type="html" xml:base="https://theaq.blog/2026/08/11/solving-htb-challenges-with-qwen-qwen3.8-max.html"><![CDATA[<p>Qwen3.8 Max was released recently, but it didn’t create much buzz. I was wondering if it was simply overshadowed by <a href="/2026/08/10/solving-htb-challenges-with-moonshotai-kimi-k3.html">Kimi K3</a>, which was released just a few days earlier, or if its performance wasn’t strong enough to raise any eyebrows.</p>

<!--more-->

<hr />

<blockquote>
  <p><img src="/assets/images/htb-challenger-benchmark-logo-full.png" alt="HTB-Challenger Benchmark" width="300px" /></p>

  <p>This blog post is part of a series of tests for the <span class="benchmark-term"><a class="benchmark-term__trigger" href="/htb-challenger-benchmark/" aria-label="HTB-Challenger Benchmark. Evaluates LLMs' ability to find and exploit security vulnerabilities using selected Hack The Box challenges of varying difficulty. Visit the benchmark page for more information.">HTB-Challenger Benchmark</a><span class="benchmark-term__tooltip">The HTB-Challenger Benchmark evaluates LLMs’ ability to find and exploit security vulnerabilities. It tests models against selected Hack The Box challenges of varying difficulty and measures their performance. For more information, visit the <a href="/htb-challenger-benchmark/">HTB-Challenger Benchmark page</a>.</span></span>
.
See the <a href="/htb-challenger-benchmark">benchmark results page</a> for all results and the <a href="/htb-challenger-benchmark-methodology">benchmark methodology</a> to learn how the benchmark is calculated.</p>
</blockquote>

<hr />

<p>I know this model has a relatively big fan base among software developers, but based on my results, I bet it won’t win many fans among pentesters and red teamers.</p>

<p>Put simply, it’s by far the most expensive model I’ve tested so far, while its results are only mediocre. It solved 10 of 16 challenges and scored 62.7%. For comparison, <a href="/2026/08/10/solving-htb-challenges-with-openai-gpt-5.6-luna-pro.html">GPT 5.6 Luna Pro</a> scored a similar 51.3%, but its median cost per challenge was only $0.10 - one-twentieth of Qwen3.8 Max’s $2.00.</p>

<p>Of course, this benchmark covers self-contained HTB challenges, not full pentests or red-team engagements. Still, the price-to-performance ratio for this kind of offensive security task is hard to justify.</p>

<p>I’m really not sure what the use case for this model is. If you already use it for coding and are happy with it, you can also try it on CTF-style offensive security tasks. It solved six of the eight Very Easy and Easy challenges, so the results there were pretty good. But if cost matters or you need better performance on harder challenges, there are better options available.</p>

<hr />

<p><img src="/assets/images/qwen-qwen3.8-max-20260803-model-card.svg" alt="HTB-Challenger Benchmark LLM model card" /></p>

<h2 id="cost-vs-benchmark-score">Cost vs. Benchmark Score</h2>

<p>The highlighted point is this model. Models closer to the upper-left achieve a higher benchmark score at a lower median cost per challenge.</p>

<object data="/assets/images/qwen-qwen3.8-max-20260803-cost-vs-benchmark-score.svg" type="image/svg+xml" width="800" height="550" aria-label="Interactive Cost vs. Benchmark Score chart with this model highlighted">
  <img src="/assets/images/qwen-qwen3.8-max-20260803-cost-vs-benchmark-score.svg" alt="Cost vs. Benchmark Score with this model highlighted" width="800" height="550" />
</object>

<h2 id="overall-benchmark-results">Overall benchmark results</h2>

<ul>
  <li><strong>Number of challenges:</strong> 16</li>
  <li><strong><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr>:</strong> 12</li>
  <li><strong><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr>:</strong> 0</li>
  <li><strong><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr>:</strong> 4</li>
  <li><strong><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr>:</strong> 0</li>
  <li><strong>Benchmark score:</strong> 62.7%</li>
</ul>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Per challenge (median)</th>
      <th style="text-align: right">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">29</td>
      <td style="text-align: right">702</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$2.00</td>
      <td style="text-align: right">$55.77</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:16:02</td>
      <td style="text-align: right">07:32:36</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.93M</td>
      <td style="text-align: right">26.08M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.03M</td>
      <td style="text-align: right">1.19M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">69</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">3.0</td>
      <td style="text-align: right">80</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">25.5</td>
      <td style="text-align: right">643</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">8</td>
    </tr>
  </tbody>
</table>

<h2 id="results-by-challenge-difficulty">Results by challenge difficulty</h2>

<p>All resource-usage metrics are medians per challenge.</p>

<table>
  <thead>
    <tr>
      <th>Metric</th>
      <th style="text-align: right">Very Easy</th>
      <th style="text-align: right">Easy</th>
      <th style="text-align: right">Medium</th>
      <th style="text-align: right">Hard</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Results</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Number of challenges</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">4</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag matched the expected flag.">Number of solved challenges</abbr></td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">3</td>
      <td style="text-align: right">3</td>
      <td style="text-align: right">2</td>
    </tr>
    <tr>
      <td><abbr title="Runs where the submitted flag did not match the expected flag.">Number of false positives</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs in which the model decided not to continue and gave up.">Runs where the model gave up</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after reaching the maximum number of steps or the maximum total cost.">Runs that reached the step or cost limit</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">2</td>
    </tr>
    <tr>
      <td><abbr title="Runs that ended after the model response exceeded the maximal length twice in a row.">Runs where the model got stuck</abbr></td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
      <td style="text-align: right">0</td>
    </tr>
    <tr>
      <td>Benchmark score</td>
      <td style="text-align: right">95.6%</td>
      <td style="text-align: right">71.1%</td>
      <td style="text-align: right">68.1%</td>
      <td style="text-align: right">46.2%</td>
    </tr>
    <tr>
      <td><strong>Median per challenge</strong></td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Model steps</td>
      <td style="text-align: right">16</td>
      <td style="text-align: right">27.5</td>
      <td style="text-align: right">47</td>
      <td style="text-align: right">65.5</td>
    </tr>
    <tr>
      <td>Model cost</td>
      <td style="text-align: right">$0.34</td>
      <td style="text-align: right">$1.50</td>
      <td style="text-align: right">$3.44</td>
      <td style="text-align: right">$5.87</td>
    </tr>
    <tr>
      <td>Duration</td>
      <td style="text-align: right">00:04:16</td>
      <td style="text-align: right">00:13:24</td>
      <td style="text-align: right">00:31:30</td>
      <td style="text-align: right">00:27:00</td>
    </tr>
    <tr>
      <td>Number of input tokens</td>
      <td style="text-align: right">0.18M</td>
      <td style="text-align: right">0.74M</td>
      <td style="text-align: right">1.28M</td>
      <td style="text-align: right">3.00M</td>
    </tr>
    <tr>
      <td>Number of output tokens</td>
      <td style="text-align: right">0.01M</td>
      <td style="text-align: right">0.03M</td>
      <td style="text-align: right">0.09M</td>
      <td style="text-align: right">0.06M</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">read_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">1.5</td>
      <td style="text-align: right">4.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">write_file</code> tool calls</td>
      <td style="text-align: right">0.5</td>
      <td style="text-align: right">4.5</td>
      <td style="text-align: right">2.5</td>
      <td style="text-align: right">5.5</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">execute_command</code> tool calls</td>
      <td style="text-align: right">12.5</td>
      <td style="text-align: right">21.5</td>
      <td style="text-align: right">40.0</td>
      <td style="text-align: right">60.0</td>
    </tr>
    <tr>
      <td>Number of <code class="language-plaintext highlighter-rouge">web_search</code> tool calls</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">1.0</td>
      <td style="text-align: right">0.0</td>
      <td style="text-align: right">0.0</td>
    </tr>
  </tbody>
</table>]]></content><author><name>TheArtificialQ</name></author><summary type="html"><![CDATA[Qwen3.8 Max was released recently, but it didn’t create much buzz. I was wondering if it was simply overshadowed by Kimi K3, which was released just a few days earlier, or if its performance wasn’t strong enough to raise any eyebrows.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" /><media:content medium="image" url="https://theaq.blog/assets/images/htb-challenger-benchmark-logo-social.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>