Escape regex metacharacters in siteApiNamespace before interpolating into RegExp
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 55/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 停滞
- 技术栈
- javascript
- 领域
- mobile-dev
调研方向
从 src/utils/api-fetch.js 中的 apiPathModifierMiddleware 开始,然后检查 src/utils/api-fetch.test.js 中相关的用例。验证包含正则表达式元字符的 namespace 是否按字面匹配,并确认现有测试仍然通过;如有需要,为报告中的 namespace 示例增加覆盖。
由索引模型根据 Issue 内容生成。
描述
Summary
In src/utils/api-fetch.js, apiPathModifierMiddleware interpolates siteApiNamespace values directly into new RegExp() without escaping regex metacharacters:
const namespaceRegex = new RegExp( `(${ siteApiNamespace.join( '|' ) })` );
If a namespace contained characters like ., +, (, ), *, etc., they would be interpreted as regex syntax rather than matched literally.
Risk
Low — siteApiNamespace comes from the native app bridge config (not user input), so exploitation requires a compromised host app. But it's a latent correctness bug: a namespace like wp/v2.1 would match wp/v2X (. matches any character).
Suggested fix
Escape each namespace before joining:
const escaped = siteApiNamespace.map( ( ns ) =>
ns.replace( /[.*+?^${}()|[\]\\]/g, '\\$&' )
);
const namespaceRegex = new RegExp( `(${ escaped.join( '|' ) })` );
Existing tests in src/utils/api-fetch.test.js pass with this change.
Found during adversarial code review of #TBD.
- 主要语言
- JavaScript
- 星标
- 29
- 派生
- 7
- 平均合并
- 2 天 11 小时
- 30 天内合并 PR
- 81
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
wordpress-mobile/GutenbergKit 的其他 Issue
-
[Type] Bug
难度 2/5 1-3 小时 新手友好度 75/100
wordpress-mobile/GutenbergKit#884 ·
维护者通常 1 天内回复
-
[Type] Bug Android
难度 2/5 1-3 小时 新手友好度 79/100
wordpress-mobile/GutenbergKit#847 ·
维护者通常 1 天内回复
-
[Type] Bug iOS
难度 2/5 1-3 小时 新手友好度 77/100
wordpress-mobile/GutenbergKit#846 ·
维护者通常 1 天内回复
-
[Type] Bug [Type] Code Quality iOS
难度 2/5 1-3 小时 新手友好度 88/100
wordpress-mobile/GutenbergKit#668 ·
维护者通常 1 天内回复
-
[Type] Bug [Type] Performance iOS
难度 2/5 1-3 小时 新手友好度 88/100
wordpress-mobile/GutenbergKit#666 ·
维护者通常 1 天内回复
查看 wordpress-mobile/GutenbergKit 的全部 Issue
相似的 Issue
-
502 on Node 26: ERR_INVALID_ARG_VALUE: Setting the TLS ServerName to an IP address is not permitted未关闭
难度 2/5 1-3 小时 新手友好度 76/100
-
难度 2/5 1-3 小时 新手友好度 75/100
github/paste-markdown#129 · 2 个 reaction ·
-
bug
难度 1/5 1-3 小时 新手友好度 83/100
obsidianmd/obsidian-help#1164 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
richardcase/skills#26 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 88/100
维护者通常 1 天内回复