Personnummer Dart库输入验证漏洞分析

本文详细分析了personnummer/dart库中的输入验证漏洞CVE-2023-22963,该漏洞由于正则表达式允许个人编号最后四位数字的前三位为000而导致验证不严格,影响了依赖该库进行身份验证的用户。

Personnummer Dart库输入验证漏洞分析

漏洞概述

CVE-2023-22963 是一个影响personnummer/dart库的低严重性输入验证漏洞。该漏洞于2020年6月向personnummer团队报告,但由于部分受影响软件包的所有权被锁定,导致在披露前更新软件包出现延迟。

影响范围

该漏洞影响那些依赖个人编号最后几位数字来验证真实个人编号的用户。

受影响版本

  • Dart: < 3.0.3

已修复版本

以下版本已包含修复补丁:

  • C#: 3.0.2
  • D: 3.0.1
  • Dart: 3.0.3
  • Elixir: 3.0.0
  • Go: 3.0.1
  • Java: 3.3.0
  • JavaScript: 3.1.0
  • Kotlin: 1.1.0
  • Lua: 3.0.1
  • PHP: 3.0.2
  • Perl: 3.0.0
  • Python: 3.0.2
  • Ruby: 3.0.1
  • Rust: 3.0.0
  • Scala: 3.0.1
  • Swift: 1.0.1

技术细节

漏洞根源

该漏洞源于正则表达式允许个人编号最后四位数字的前三位为000,这是无效的。这种不严格的验证可能导致错误的身份验证结果。

临时解决方案

如果不升级版本,可以通过检查最后四位数字来缓解此问题,确保其不是000x格式。

参考资料

联系信息

如有关于此公告的任何问题或评论:

  • 在Personnummer Meta中创建问题
  • 通过Personnummer邮箱联系我们

建议使用早期版本的用户尽快更新到最新版本以确保安全。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计