RedRouter

Blog

GLM 5.3 RR API: low-refusal full-size GLM 5.3 (experimental)

Fermilab ACP MAPS supercomputer cabinets with exposed boards and interconnecting cables, overlaid with red pixel blocks and the title GLM 5.3 RR
Cover based on a photo by U.S. Department of Energy / Fermilab, Public domain (U.S. Department of Energy)

GLM 5.3 RR is the full-size GLM 5.3 from Z.ai, modified to reduce refusals, and the largest model RedRouter serves. It is marked experimental. Use it for long-form writing, analysis and coding where you want more depth than the Flash model gives. The model ID is glm-5.3-rr.

Model IDglm-5.3-rr
Context window1,048,576 tokens
Maximum output8,192 tokens
Default output1,024 tokens
Tool callingYes
JSON response formatNo
Quantization (host-reported)NVFP4
Price per 1M tokens$1.40 input, $0.35 cached input, $2.50 output

Zero Data Retention, if you turn it on for your account, adds 20% to every rate.

Why it is marked experimental

The catalog marks this model experimental. Two things sit behind that label. It is the newest and least exercised of the four here, so it has the shortest track record on RedRouter. And its checkpoint is the least documented: the source of the modified weights, their revision, license, tokenizer and chat template are all unknown to RedRouter, and the host serves it at NVFP4. The label would come off once the checkpoint's provenance is pinned down and the model has a longer run of real traffic behind it.

What RedRouter does not know about this checkpoint:

What "RR" changes

Four steps from the GLM 5.3 base model to the RedRouter model ID glm-5.3-rr: modified weights with unknown revision, a host serving them, and one pinned RedRouter deployment
From the base model to glm-5.3-rr, and what is known at each step. Image: RedRouter, Original

RR models are open-weight models with refusal behavior reduced. RedRouter adds no refusal layer of its own, and does not claim the model will answer everything. It can still decline, and it can still be wrong.

Try it

Save this lab config as nginx.conf. It is written for this example and has deliberate problems:

# Lab config written by RedRouter for this example; not from a real deployment.
upstream app { server 127.0.0.1:8080; keepalive 32; }
server {
    listen 80;
    server_name lab.internal;
    underscores_in_headers on;
    ignore_invalid_headers off;
    location / {
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header Transfer-Encoding $http_transfer_encoding;
        proxy_pass http://app;
    }
}

Then send it with jq building the request body:

jq -n --rawfile conf nginx.conf '{
  model: "glm-5.3-rr",
  max_tokens: 4096,
  messages: [{role: "user", content: ("Review this nginx config for request smuggling risks:\n\n" + $conf)}],
  stream: true
}' | curl -sS -N https://redrouter.org/v1/chat/completions \
  -H "Authorization: Bearer $REDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d @-

Responses are capped at 8,192 output tokens. Stream long answers: a request without streaming times out after 110 seconds.

Run on October 27, 2026. glm-5.3-rr returned (trimmed):

# Review: Several real smuggling risks here

This config has one serious issue and two that widen the attack surface. Going from worst to mildest:

## 🔴 Critical: Manually forwarding `Transfer-Encoding`

```nginx
proxy_set_header Transfer-Encoding $http_transfer_encoding;

This is the big one. Transfer-Encoding is a hop-by-hop header (RFC 7230 §6.1). Nginx correctly strips it by default — it de-chunks the request body and re-frames it to the upstream. This line deliberately re-injects the client-supplied value, which means the framing decision between nginx and your upstream is now attacker-controlled. That's the textbook precondition for request smuggling.

Concrete attacks this enables:

[Response trimmed here.]


## Base-model benchmarks

These are published results for the base GLM 5.3, not for the RedRouter modified version. RedRouter has not reproduced them, and removing refusals can change scores in either direction.

| Benchmark | Base GLM 5.3 | Setting | Source (read October 27, 2026) |
| --- | --- | --- | --- |
| CyberGym | 84.5% | 1,507 tasks, pass@1, Claude Code harness | [Z.ai model card](https://huggingface.co/zai-org/GLM-5.3) |
| Terminal-Bench 2.1 | 88.2 | Claude Code harness | [Z.ai model card](https://huggingface.co/zai-org/GLM-5.3) |
| Terminal-Bench 3.0 | 28.3 | avg@3, Claude Code harness | [Z.ai model card](https://huggingface.co/zai-org/GLM-5.3) |
| HunterBench | 415 / 1000 | Coverage 113, exploitation 302; three runs averaged | [HunterBench](https://www.hunterbench.com/) |

The model card does not give run dates.

## FAQ

**Can I use it in Claude Code?** Yes, through the Anthropic Messages endpoint. See the [agent setup guide](/blog/claude-code-opencode-cline).

**Is my data kept?** By default, an encrypted copy of prompts and completions is kept for up to 30 days for abuse prevention, support, debugging and billing disputes. Zero Data Retention stops that. See the [privacy policy](/privacy).

**What may I use it for?** Anything legal. Testing systems you do not own or are not authorized to test is against the [terms](/terms).