大规模语言模型 (LLM) 被广泛用于代码生成,但在生产环境中应用时,由于存在“包幻觉”(推荐不存在的包)的问题,会带来严重的安全风险。恶意攻击者可以利用这些“包幻觉”来注册恶意包,从而可能导致软件供应链攻击。本研究强调了测试 LLM 是否存在“包幻觉”问题的重要性,以减轻“包幻觉”问题并防御潜在的攻击。为此,我们提出了一个基于语法的模糊测试框架 HFUZZER。HFUZZER 采用模糊测试技术,通过诱导模型基于语法推断更广泛的合理信息来生成充足且多样化的编码任务。此外,它从包信息或编码任务中提取语法,以确保语法与代码的相关性,从而增强生成的任务与代码的相关性。HFUZZER 在多个 LLM 上的评估结果表明,所有选定的模型都存在“包幻觉”问题。与变异模糊测试框架相比,HFUZZER 识别出的独特幻觉程序包数量增加了 2.60 倍,生成的任务种类也更加丰富。此外,在测试 GPT-4o 时,HFUZZER 发现了 46 个独特的幻觉程序包。进一步分析表明,对于 GPT-4o,LLM 不仅在生成代码时表现出幻觉程序包,在协助环境配置时也表现出幻觉程序包。