codex-native-bin
The package downloads a prebuilt frontend artifact from a non-standard host (persistent.oaistatic.com), which is not the project's primary repository, posing a supply-chain risk if the host is compromised or swappable.
Triggered rules
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:19
"${_codex_frontend_artifact}-${_codex_frontend_version}.zip::https://persistent.oaistatic.com/codex-app-prod/${_codex_frontend_artifact}-${_codex_frontend_version}.zip"
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 90%): The package downloads a prebuilt frontend artifact from a non-standard host (persistent.oaistatic.com), which is not the project's primary repository, posing a supply-chain risk if the host is compromised or swappable.
PKGBUILD
1 offending line(s) highlightedpkgname=codex-native-bin
pkgver=r146.8f36d66
pkgrel=1
pkgdesc="Native Linux Codex desktop shell built with Rust, GTK, WebKitGTK, and Codex CLI (prebuilt binary)"
arch=('x86_64')
url="https://github.com/Redminote11tech/Codex-Native"
license=('MIT')
depends=('gtk3' 'webkit2gtk-4.1' 'libsoup3' 'openssl')
optdepends=('codex: Codex CLI backend bridge for chat, auth, and runtime integration')
provides=('codex-native')
conflicts=('codex-native' 'codex-native-git')
_codex_frontend_version=26.818.41705
_codex_frontend_artifact=ChatGPT-darwin-arm64
_codex_frontend_sha256='522536a3ee61f404c24d462443dd131f4b0ebb74b77a33ea50d8d2354b386eff'
_release_tag=r146.8f36d66
_release_asset_sha256='9478e7d69142ee984f277ee6bbd1d46409509b03ea9c16e7ea6a85a62b558fbf'
source=(
"codex-native-${_release_tag}-linux-x86_64.tar.gz::https://github.com/Redminote11tech/Codex-Native/releases/download/${_release_tag}/codex-native-${_release_tag}-linux-x86_64.tar.gz"
"${_codex_frontend_artifact}-${_codex_frontend_version}.zip::https://persistent.oaistatic.com/codex-app-prod/${_codex_frontend_artifact}-${_codex_frontend_version}.zip"
)
sha256sums=(
"${_release_asset_sha256}"
"${_codex_frontend_sha256}"
)
package() {
local extracted_root="$srcdir/codex-frontend"
local asar_path
local icon_path
rm -rf "$extracted_root"
asar_path="$(find "$srcdir" -path '*/Contents/Resources/app.asar' -type f | sort | head -n 1)"
if [[ -z "$asar_path" ]]; then
echo "failed to locate app.asar in upstream frontend bundle" >&2
return 1
fi
./codex-native extract-asar "$asar_path" "$extracted_root"
install -Dm755 "$srcdir/codex-native" "$pkgdir/usr/bin/codex-native"
install -Dm755 "$startdir/codex-native-launcher" "$pkgdir/usr/bin/codex-native-launcher"
install -Dm644 "$startdir/codex-native.desktop" \
"$pkgdir/usr/share/applications/codex-native.desktop"
install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -d "$pkgdir/usr/share/codex-native"
cp -a "$extracted_root/webview" "$pkgdir/usr/share/codex-native/"
icon_path="$(find "$extracted_root/webview/assets" -maxdepth 1 -type f -name 'app-*.png' | sort | head -n 1)"
if [[ -z "$icon_path" ]]; then
echo "failed to locate Codex icon asset in extracted webview" >&2
return 1
fi
install -Dm644 "$icon_path" "$pkgdir/usr/share/pixmaps/codex-native.png"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-07 00:21:34 | Medium | 2 |
| 2026-10-06 00:13:36 | Medium | 2 |
| 2026-10-05 00:08:03 | Medium | 2 |
| 2026-10-04 00:18:08 | Medium | 2 |
| 2026-10-03 00:23:04 | Medium | 2 |
| 2026-10-02 00:00:32 | Medium | 2 |
| 2026-10-01 00:02:06 | Medium | 2 |
| 2026-09-30 00:20:07 | Medium | 2 |
| 2026-09-29 00:07:46 | Medium | 2 |
| 2026-09-28 00:28:32 | Medium | 2 |
| 2026-09-27 00:07:07 | Medium | 2 |
| 2026-09-26 00:12:15 | Medium | 2 |
| 2026-09-25 00:03:36 | Medium | 2 |
| 2026-09-24 00:24:14 | Medium | 2 |
| 2026-09-23 00:28:13 | Medium | 2 |
| 2026-09-22 00:15:14 | Medium | 2 |
| 2026-09-21 00:26:32 | Medium | 2 |
| 2026-09-20 00:25:31 | Medium | 2 |
| 2026-09-19 00:25:36 | Medium | 2 |
| 2026-09-18 00:17:11 | Medium | 2 |