@@ -92,7 +92,7 @@ func walkSorted(dir, baseDir string, manifest map[string]string) error {
9292 // Normalize to forward slashes
9393 relStr := filepath .ToSlash (relPath )
9494
95- fileBytes , err := os .ReadFile (fullPath )
95+ fileBytes , err := os .ReadFile (fullPath ) // #nosec G304 -- path constructed from trusted directory walk
9696 if err != nil {
9797 return fmt .Errorf ("failed to read file %s: %w" , fullPath , err )
9898 }
@@ -169,7 +169,7 @@ func ParseSkillName(skillDir string) string {
169169 }
170170
171171 skillMD := filepath .Join (absDir , "SKILL.md" )
172- data , err := os .ReadFile (skillMD )
172+ data , err := os .ReadFile (skillMD ) // #nosec G304 -- path constructed from user-provided skill directory
173173 if err != nil {
174174 return filepath .Base (absDir )
175175 }
@@ -198,7 +198,7 @@ func ParseSkillName(skillDir string) string {
198198// LoadSignature reads and parses the .schemapin.sig file from a skill directory.
199199func LoadSignature (skillDir string ) (* SkillSignature , error ) {
200200 sigPath := filepath .Join (skillDir , SignatureFilename )
201- data , err := os .ReadFile (sigPath )
201+ data , err := os .ReadFile (sigPath ) // #nosec G304 -- path constructed from user-provided skill directory
202202 if err != nil {
203203 return nil , fmt .Errorf ("failed to read signature file: %w" , err )
204204 }
@@ -267,7 +267,7 @@ func SignSkill(skillDir, privateKeyPEM, domain string, signerKid, skillName stri
267267 }
268268
269269 sigPath := filepath .Join (skillDir , SignatureFilename )
270- if err := os .WriteFile (sigPath , append (sigJSON , '\n' ), 0644 ); err != nil {
270+ if err := os .WriteFile (sigPath , append (sigJSON , '\n' ), 0600 ); err != nil { // #nosec G306
271271 return nil , fmt .Errorf ("failed to write signature file: %w" , err )
272272 }
273273
0 commit comments