Is picks.my safe?

suspiciouslow confidence
35/100

context safety score

A score of 35/100 indicates multiple risk signals were detected. This entity shows patterns commonly associated with malicious intent.

identity
100
behavior
50
content
0
graph
30

7 threat patterns detected

medium

encoded payload

suspicious base64-like blobs detected in page content

critical

obfuscated code

The page contains a large, heavily obfuscated JavaScript block using a custom string-array rotation cipher with RC4-like decryption (function `x`/`l`). All meaningful strings — including script URLs, WebSocket endpoints, and DOM manipulation targets — are encoded as numeric-keyed lookups into an encrypted array. This prevents static analysis of actual behavior and is a strong indicator of malicious or evasive code execution. (location: page.html:34-543 (<script data-cfasync="false">))

critical

obfuscated code

The obfuscated script dynamically constructs and injects multiple `<script>` elements at runtime using decoded string fragments (lines 437-536). The actual URLs of the injected scripts are fully hidden behind the obfuscation layer and cannot be verified statically. Dynamic script injection from obfuscated sources is a classic malware delivery technique. (location: page.html:437-536 (U([...]) call inside onload handler))

high

obfuscated code

The obfuscated script opens a WebSocket connection to an encoded URL (assembled from obfuscated string fragments at lines 388-395). The WebSocket `onmessage` handler injects received data directly as script `innerHTML` into the document, enabling remote code execution: whatever the WebSocket server sends is executed as JavaScript in the page context. (location: page.html:388-403 (WebSocket construction and onmessage handler))

high

malicious redirect

The obfuscated bootstrap script reads `document.location.search` (the URL query string) and embeds it into dynamically constructed script URLs loaded at page startup (lines 422-428, 443-451). This enables query-parameter-driven redirection or payload delivery — a common technique for traffic distribution systems (TDS) and malvertising chains. (location: page.html:416-428 (variable `y` and script `src` construction using location.search))

medium

prompt injection

The page title and OG metadata present the site as 'Todaystory' / 'Today\'s stories' — a generic news aggregator — while the canonical URL points to `https://picks.my/en_v2/list.html` and the HTML lang is `ko` (Korean). The mismatch between the English-facing branding and Korean-language internals, combined with Samsung-branded ad slot comments (`Samsung_GL_life_list_atf`, `Samsung_GL_life_anchor`), suggests the page is designed to appear as a legitimate Samsung/carrier content feed to both users and AI agents parsing metadata, potentially manipulating agent trust signals. (location: page.html:12-32 (meta tags, canonical, comments))

medium

hidden content

A GeoEdge ad quality script (`rumcdn.geoedge.be`) is present in the HTML but commented out, along with its API key (`275f7111-2d04-458d-b278-d92922841cd7`). While GeoEdge is a legitimate ad security vendor, its presence in commented-out form alongside heavy JS obfuscation may indicate the site cycles between configurations or that the key is being reused in the obfuscated scripts without disclosure. (location: page-hidden.txt:4-9 / page.html:559-564)

API

curl https://api.brin.sh/domain/picks.my

FAQ: how to interpret this assessment

Common questions teams ask before deciding whether to use this domain in agent workflows.

Is picks.my safe for AI agents to use?

picks.my currently scores 35/100 with a suspicious verdict and low confidence. The goal is to protect agents from high-risk context before they act on it. Treat this as a decision signal: higher scores suggest lower observed risk, while lower scores mean you should add review or block this domain.

How should I interpret the score and verdict?

Use the score as a policy threshold: 80–100 is safe, 50–79 is caution, 20–49 is suspicious, and 0–19 is dangerous. Teams often auto-allow safe, require human review for caution/suspicious, and block dangerous.

How does brin compute this domain score?

brin evaluates four dimensions: identity (source trust), behavior (runtime patterns), content (malicious instructions), and graph (relationship risk). Analysis runs in tiers: static signals, deterministic pattern checks, then AI semantic analysis when needed.

What do identity, behavior, content, and graph mean for this domain?

Identity checks source trust, behavior checks unusual runtime patterns, content checks for malicious instructions, and graph checks risky relationships to other entities. Looking at sub-scores helps you understand why an entity passed or failed.

Why does brin scan packages, repos, skills, MCP servers, pages, and commits?

brin performs risk assessments on external context before it reaches an AI agent. It scores that context for threats like prompt injection, hijacking, credential harvesting, and supply chain attacks, so teams can decide whether to block, review, or proceed safely.

Can I rely on a safe verdict as a full security guarantee?

No. A safe verdict means no significant risk signals were detected in this scan. It is not a formal guarantee; assessments are automated and point-in-time, so combine scores with your own controls and periodic re-checks.

When should I re-check before using an entity?

Re-check before high-impact actions such as installs, upgrades, connecting MCP servers, executing remote code, or granting secrets. Use the API in CI or runtime gates so decisions are based on the latest scan.

Learn more in threat detection docs, how scoring works, and the API overview.

Last Scanned

March 4, 2026

Verdict Scale

safe80–100
caution50–79
suspicious20–49
dangerous0–19

Disclaimer

Assessments are automated and may contain errors. Findings are risk indicators, not confirmed threats. This is a point-in-time assessment; security posture can change.

start scoring agent dependencies.

integrate brin in minutes — one GET request is all it takes. query the api, browse the registry, or download the full dataset.