OpenCyber Academy
Rapid course · Lesson 11 · English
Course code: OCA-011Lesson 11: OCA-011-A011

Five hundred and forty days is not a version

Open, free learning for anyone who wants to protect people and technology. No account is required to read this text or its worked answers.

Lesson map

Lesson 11. Map, example, EX057.

flowchart TD
  A["firmware_age_days = 540"] --> B{"540 <= 180?"}
  B -->|No| F["FIX  firmware updated within 180 days"]
  F --> V["No version string is stored"]

The script compares two integers. It does not name a release.

Logical drawing

age in the dictionary   540
threshold in the check  180
comparison              540 <= 180 is false
chapter 4 gloss         about eighteen months
version string          absent

Learning outcomes

After this chapter, you should be able to:

  1. Evaluate the firmware predicate from the two integers.
  2. Keep chapter 4's "about eighteen months" as a gloss of 540 days.
  3. Refuse a version, a date, or a vulnerability identifier.

11.1 Age is a number in a dictionary. A release name would be a different fact.

The firmware check is the comparison firmware_age_days <= 180. The dictionary sets the age to 540. Five hundred and forty is greater than one hundred and eighty, so the predicate is false and the line prints FIX. That is the whole computation. It does not identify the product, the release, or a particular weakness. Chapter 4 glosses the same integer as "about eighteen months." The gloss is a reading of 540 days, not a calendar date and not a second measurement. A note may say 540 days, or it may repeat chapter 4's gloss. It may not replace 540 with a version string that was never stored.

The narrative says Leo used the router's built-in update after closing, then checked that the tills, the card reader, and the office computer still connected and that a test payment worked. Those are change-control facts. They do not write a new integer into this script, and they do not name the release that arrived. The three-month habit is a future check for updates. A habit on a pinned list is not evidence that a later age was measured. The saved after-checklist is said to carry a date. The date is not printed. Supplying one would falsify the record by filling a blank.

This limit is also why the course does not list vulnerabilities. A known weakness in old firmware is the reason the checklist cares about age. Naming an identifier, a version, or an exploit would invent an incident and would leave the defensive boundary. The decision Ellen can defend from this file is narrower: the before age fails a 180-day rule, the update is described and not re-measured here, and the next check is a habit.

11.2 Worked example

Lesson table; scroll horizontally to read all columns →

Added text Status Decision
"The dictionary age is 540, and 540 is not within 180." The comparison May stay
"Chapter 4 calls that about eighteen months." The gloss May stay
"The release is named in the script." No such field Refuse
"The update story replaced 540." The script is unchanged Refuse

Synthetic case. No vulnerability identifier is attached to the bakery router.

Errors and limits

An update story can be operationally real and still leave the embedded age at 540.

Apply

  • EX057 — What integer do you quote? The firmware line fails. Chapter 4 says the age is about eighteen months and that an update was run later. Which integer is in the dictionary, and what version do you print?
    Show marking criteria
    Rubric: 3 = 540 stays; the threshold stays 180; the eighteen-month phrase stays a gloss; no version, date, or vulnerability identifier is added; the update stays prose;; 2 = 540 stays and no version is invented;; 1 = the story only;; 0 = none.
Worked answers

EX057. The age stays 540 and the threshold stays 180. About eighteen months is the existing gloss. No version, date, or vulnerability identifier is added, and the update stays prose.