T08 · Insecure Dependencies
- Location
SKILL.md:97- Finding
Unpinned Rhino template package allows dependency drift and supply-chain compromise
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a Rhino3D development reference skill with disclosed, purpose-aligned guidance, though users should pin dependencies before running install examples.
Install only if you are doing Rhino plugin or script development. Before running copied commands, pin NuGet and Python dependency versions, review generated project files before building, and treat yak login/push commands as publishing actions that should be run only from a trusted environment.
SKILL.md:97Unpinned Rhino template package allows dependency drift and supply-chain compromise
SKILL.md:551Unpinned inline Python dependencies permit mutable code installation on first run
Referenced artifact was not completely inspected
`assets/plugin-project-template.md` has the complete, annotated scaffolding: three `.csproj`
Referenced artifact was not completely inspected
`assets/plugin-project-template.md` has the complete, annotated scaffolding: three `.csproj`
Referenced artifact was not completely inspected
`assets/plugin-project-template.md` has the complete, annotated scaffolding: three `.csproj`
Referenced artifact was not completely inspected
is deliberately Windows-only. `assets/ui-patterns.md` has complete, adaptable implementations
Referenced artifact was not completely inspected
is deliberately Windows-only. `assets/ui-patterns.md` has complete, adaptable implementations
Referenced artifact was not completely inspected
painful. `scripts/persistence-and-userdata.md` has all four with working code.
Referenced artifact was not completely inspected
painful. `scripts/persistence-and-userdata.md` has all four with working code.
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).
r .resx.** GenerateResourceUsePreserializedResources, the
System.Resources.Extensions package, and the EmbeddedResource item are one unit — with any of
the three missing, icon resources fail to build or the icon comes out blank. The manifest resource
name that [PlugInDescription(DescriptionType.Icon, ...)] takes is derived from this item's path
(see §8).
<PropertyGroup>
<!-- Required on .NET 7+ to embed System.Drawing.Bitmap / Icon in a .resx. -->
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Resources.Extensions" Version="8.0.0" ExcludeAssets="runtime" />
</ItemGroup>
<!-- If you also keep a Properties\Resources.resx with a generated designer
file, your IDE writes the matching <Compile Update="...Designer.cs"> /
<EmbeddedResource Update="...resx"> pair for you. -->
<ItemGroup>
<EmbeddedResource Include="Resources\
This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.
public override object PageControl
=> m_control ?? (m_control = new MyOptionsPageControl());
public override System.Drawing.Image PageImage => Properties.Resources.MyPageIcon;
public override bool OnActivate(bool active) => m_control == null || m_control.OnActivate(active);
public override bool OnApply() => m_control == null || m_control.OnApply();
This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.
public override object PageControl
=> m_control ?? (m_control = new MyOptionsPageControl());
public override System.Drawing.Image PageImage => Properties.Resources.MyPageIcon;
public override bool OnActivate(bool active) => m_control == null || m_control.OnActivate(active);
public override bool OnApply() => m_control == null || m_control.OnApply();
The skill instructs invocation not only for explicit Rhino plugin work but also for broad Rhino-adjacent topics such as general geometry, document objects, and file types. That can cause the agent to apply this highly specialized skill in contexts where it is not the best fit, increasing the chance of irrelevant guidance, unsafe assumptions, or over-permissioned behavior in downstream automation.